module Seq:sig
..end
Sequences, Strings and Regular Expressions *
val mk_seq_sort : context -> Sort.sort -> Sort.sort
create a sequence sort
val is_seq_sort : context -> Sort.sort -> bool
test if sort is a sequence sort
val mk_re_sort : context -> Sort.sort -> Sort.sort
create regular expression sorts over sequences of the argument sort
val is_re_sort : context -> Sort.sort -> bool
test if sort is a regular expression sort
val mk_string_sort : context -> Sort.sort
create string sort
val mk_char_sort : context -> Sort.sort
create char sort
val is_string_sort : context -> Sort.sort -> bool
test if sort is a string sort (a sequence of 8-bit bit-vectors)
val is_char_sort : context -> Sort.sort -> bool
test if sort is a char sort
val mk_string : context -> string -> Expr.expr
create a string literal
val is_string : context -> Expr.expr -> bool
test if expression is a string
val get_string : context -> Expr.expr -> string
retrieve string from string Expr.expr
val mk_seq_empty : context -> Sort.sort -> Expr.expr
the empty sequence over base sort
val mk_seq_unit : context -> Expr.expr -> Expr.expr
a unit sequence
val mk_seq_concat : context -> Expr.expr list -> Expr.expr
sequence concatenation
val mk_seq_prefix : context -> Expr.expr -> Expr.expr -> Expr.expr
predicate if the first argument is a prefix of the second
val mk_seq_suffix : context -> Expr.expr -> Expr.expr -> Expr.expr
predicate if the first argument is a suffix of the second
val mk_seq_contains : context -> Expr.expr -> Expr.expr -> Expr.expr
predicate if the first argument contains the second
val mk_seq_extract : context -> Expr.expr -> Expr.expr -> Expr.expr -> Expr.expr
extract sub-sequence starting at index given by second argument and of length provided by third argument
val mk_seq_replace : context -> Expr.expr -> Expr.expr -> Expr.expr -> Expr.expr
replace first occurrence of second argument by third
val mk_seq_at : context -> Expr.expr -> Expr.expr -> Expr.expr
a unit sequence at index provided by second argument
val mk_seq_length : context -> Expr.expr -> Expr.expr
length of a sequence
val mk_seq_nth : context -> Expr.expr -> Expr.expr -> Expr.expr
mk_seq_nth ctx s index
retrieves from s
the element at position index
.
The function is under-specified if the index is out of bounds.
val mk_seq_index : context -> Expr.expr -> Expr.expr -> Expr.expr -> Expr.expr
index of the first occurrence of the second argument in the first
val mk_seq_last_index : context -> Expr.expr -> Expr.expr -> Expr.expr
mk_seq_last_index ctx s substr
occurence of substr
in the sequence s
val mk_str_to_int : context -> Expr.expr -> Expr.expr
retrieve integer expression encoded in string
val mk_str_le : context -> Expr.expr -> Expr.expr -> Expr.expr
compare strings less-than-or-equal
val mk_str_lt : context -> Expr.expr -> Expr.expr -> Expr.expr
compare strings less-than
val mk_int_to_str : context -> Expr.expr -> Expr.expr
convert an integer expression to a string
val mk_string_to_code : context -> Expr.expr -> Expr.expr
mk_string_to_code ctx s
convert a unit length string s
to integer code
val mk_string_from_code : context -> Expr.expr -> Expr.expr
mk_string_from_code ctx c
convert code c
to a string
val mk_ubv_to_str : context -> Expr.expr -> Expr.expr
mk_ubv_to_str ctx ubv
convert a unsigned bitvector ubv
to a string
val mk_sbv_to_str : context -> Expr.expr -> Expr.expr
mk_sbv_to_str ctx sbv
convert a signed bitvector sbv
to a string
val mk_seq_to_re : context -> Expr.expr -> Expr.expr
create regular expression that accepts the argument sequence
val mk_seq_in_re : context -> Expr.expr -> Expr.expr -> Expr.expr
regular expression membership predicate
val mk_re_plus : context -> Expr.expr -> Expr.expr
regular expression plus
val mk_re_star : context -> Expr.expr -> Expr.expr
regular expression star
val mk_re_option : context -> Expr.expr -> Expr.expr
optional regular expression
val mk_re_union : context -> Expr.expr list -> Expr.expr
union of regular expressions
val mk_re_concat : context -> Expr.expr list -> Expr.expr
concatenation of regular expressions
val mk_re_range : context -> Expr.expr -> Expr.expr -> Expr.expr
regular expression for the range between two characters
val mk_re_loop : context -> Expr.expr -> int -> int -> Expr.expr
bounded loop regular expression
val mk_re_intersect : context -> Expr.expr list -> Expr.expr
intersection of regular expressions
val mk_re_complement : context -> Expr.expr -> Expr.expr
the regular expression complement
val mk_re_empty : context -> Sort.sort -> Expr.expr
the regular expression that accepts no sequences
val mk_re_full : context -> Sort.sort -> Expr.expr
the regular expression that accepts all sequences
val mk_char : context -> int -> Expr.expr
mk_char ctx i
converts an integer to a character
val mk_char_le : context -> Expr.expr -> Expr.expr -> Expr.expr
mk_char_le ctx lc rc
compares two characters
val mk_char_to_int : context -> Expr.expr -> Expr.expr
mk_char_to_int ctx c
converts the character c
to an integer
val mk_char_to_bv : context -> Expr.expr -> Expr.expr
mk_char_to_bv ctx c
converts the character c
to a bitvector
val mk_char_from_bv : context -> Expr.expr -> Expr.expr
mk_char_from_bv ctx bv
converts the bitvector bv
to a character
val mk_char_is_digit : context -> Expr.expr -> Expr.expr
mk_char_is_digit ctx c
checks if the character c
is a digit