(*) [Euclid(Rat] |
Multiplication.
|
(+) [Euclid(Rat] |
Addition.
|
(/) [Euclid(Rat] |
Inverse of Multiplication.
|
(<<<) [Var] | x <<< y holds iff cmp x y <= 0 .
|
(<<<) [Term] | a <<< b iff cmp a b <= 0 .
|
A | |
abs [Mpa.Q] | |
abstract [Infsys.ARITH] | |
abstract [Apply] | abstract x a lamgda-abstracts a .
|
abstract [Infsys.EQ] | (g[a]; e; p) ==> (g[x]; e, x = a; p)
with a a nonvariable term, , a an i -pure term, , and x fresh.
|
acc1 [Tools] | acc1 acc f b calls f b to obtain (c, a) .
|
acc2 [Tools] | acc2 acc f b1 b2 calls f b1 b2 to obtain (c, a) .
|
accb [Tools] | accb acc p b calls p b .
|
accumulate [V] |
Folding over the members of a specific equivalence class.
|
add [Trace] | add l activates the trace level l .
|
add [Mpa.Q] | |
add [Mpa.Z] | |
add [Dom] | |
add [D] | add d s adds a disequality d of the form
x <> y to the disequality context s .
|
add [Context] | process s a extends the logical context s with an atom a .
|
add_at_exit [Tools] |
Procedures
f without parameters can be registered as exit procedures
by add_to_exit f .
|
add_at_reset [Tools] | add_to_reset f registers f as a reset procedure
|
addl [Dom] | |
addl [Context] | |
all_ones [Bitv] | |
all_zeros [Bitv] | |
app [Th] | |
append [Bitv] | |
apply [Term.Subst] | |
apply [Sym.Cl] | |
apply [Product] | apply (x, b) a replaces uninterpreted occurrences
of x in a with b , and returns a canonical form.
|
apply [Pretty] | |
apply [Solution.SET] | apply s x yields (b, rho) if x = b in s with justification rho ;
if x is not a dependent variable, Not_found is raised.
|
apply [Jst.Rel2] |
Test binary term relation
r on f a and f b .
|
apply [Jst.Rel1] |
Test binary term relation
r on f a and f b .
|
apply [Jst.Pred2] |
Test predicate
p on f(a) .
|
apply [Jst.Pred] |
Test predicate
p on f(a) .
|
apply [Jst.Eqtrans] | |
apply [Funarr.Flat] |
Replace a variable
x by y in a flat term a .
|
apply [Coproduct] | apply (x, b) for uninterpreted occurrences of x in a
with b , and normalizes.
|
apply [Bitvector] | |
apply [Arith] | apply (x, b) a occurrences of x in a with b , and normalizes.
|
apply [Apply] |
Replacing a variable with a term.
|
args_of [Term.App] | sym_of a returns the argument list l of an application
a of the form App(_,l, _) .
|
arr [Th] | |
arr_of [Combine.E] | |
assq [Term] |
Association lists for terms.
|
atom_of [Atom] |
Retrieve the atom from an atom-index pair.
|
axiom [Jst] | |
axioms_of [Jst] | |
B | |
bitv2nat [Bitvector] |
Unsigned interpretation of a bitvector constant.
|
blit [Bitv] | |
bool [Pretty] | |
both_sides [Fact.Diseq] | |
both_sides [Fact.Equal] | |
branch [Infsys.ARITH] | |
branch [Infsys.EQ] | (g; e; p) ==> (g, c1; e; p) | ... | (g, cn; e; p)
with e, p |= c1 \/ ... \/ cn , not e, p |= ci
|
bv [Th] | |
bw_and [Bitv] | |
bw_not [Bitv] | |
bw_or [Bitv] | |
bw_xor [Bitv] | |
C | |
c [Sym.Cl] | |
call [Trace] | call l name arg pp outputs a function call trace message
if l is currently active by first outputting name followed
by printing arg using the pp printer.
|
can [La] | replace s a substitutes dependent variables x
in a with their right hand side b if x = b in s .
|
can [Combine] |
Given an equality set
e and a partition p as obtained
from processing, can (e, p) a returns a term b equivalent
to a in (e, p) together with a justification rho .
|
ceil [Mpa.Q] | |
cheap [Combine] |
If
cheap is set, Combine.simplify only performs cheap
simplifications for disequalities and inequalities.
|
check_sat [Context] | check_sat s performs case-splitting and returns Some(splits', s') if there is a complete case-splitting path splits'
yielding a satisfiable extension s' of s ., None if all case-splittinig paths yield an inconsistent context.
|
choose [V] | choose s p x chooses a y which is congruent to x modulo s
which satisfies p .
|
choose [Term] | choose p a chooses a variable of a which satisfies predicate p .
|
choose [Partition] | choose p apply x chooses an x' such that apply x' does
not raise Not_found .
|
choose [Solution.DEP] | choose s y returns equality e of the form x = a
if x is dependent on y ; otherwise, Not_found is raised.
|
cl_of [Combine.E] | |
cmp [Var] | cmp x y realizes a total ordering on variables.
|
cmp [Term] | cmp a b realizes a total ordering on terms.
|
cmp [Sym] | cmp f g returns 0 iff eq f g holds, and cmp f g is positive
iff cmp g f is negative.
|
cmp [Mpa.Q] | |
cmp [Dom] | cmp d e is 0 if eq d e holds, -1 if sub d e holds, 1 if sub e d holds.
Otherwise the result is unspecified.
|
cnstrnt [V] |
For a canonical variable
x , cnstrnt s x returns the
domain constraint associated with the equivalence class x .
|
cnstrnt [Partition] | cnstrnt s x returns a domain constraint on x , or raises Not_found
if the interpretation of x is unconstrained.
|
cnstrnt_of [Var] | cnstrnt_of x returns the domain constraint of variable x .
|
cnstrnt_of [Term.Var] | cnstrnt_of x returns the domain constraint associated with x .
|
coefficient_choose [Arith.Monomials] | |
coefficient_of [Arith.Monomials.Neg] | |
coefficient_of [Arith.Monomials.Pos] | |
coefficient_of [Arith] | |
coi_enabled [Context] |
Enable/Disable cone of influence.
|
compare [Term.Equal] | |
compare [Term.Var] |
Total variable ordering.
|
compare [Term] |
Total comparison on term which is designed to be fast.
|
compare [Name] |
If
s (t ) is the string associated to n (m ), then
compare n m equals 0 iff eq n m .
|
compare [Mpa.Q] | |
compare [Mpa.Z] | |
compose [Term.Subst] | |
compose [Jst.Eqtrans] |
If
g a = (b, rho) and f b = (c, tau) with rho |- a = b
and tau |- b = c , then compose f g a returns (c, sigma)
with sigma |- a = c .
|
compose3 [Jst.Eqtrans] | compose3 f g h is defined as compose f (compose g h) .
|
compose_partial1 [Jst.Eqtrans] | compose_partial1 f g a behaves like compose f g a when f
does not throw an exception.
|
concat [Bitv] | |
config_of [Context] | |
constant_of [Arith] |
If
a is of the form q + a' , then constant_of a returns q .
|
cop [Th] | |
cop_of [Combine.E] | |
copy [V] |
Protect state against destructive updates.
|
copy [Partition] | copy p copies p to a partition which is observationally
equal to p .
|
copy [Solution.SET] | |
copy [G] | |
copy [Combine.E] | |
copy [Bitv] | |
create [Bitv] | |
ctxt_of [Context] | ctxt_of s returns the logical context of s as a list of atoms.
|
current [Infsys.ARITH] | |
current [Infsys.EQ] | |
D | |
d_add [Arith] | d_add a returns Some(bl) if a is a function application
with symbol Sym.Add .
|
d_atom [Prop] | |
d_conc [Sym.Bv] | |
d_const [Sym.Bv] | |
d_const [Bitvector] |
Accessor for bitvector constants.
|
d_create [Funarr] | |
d_disj [Prop] | |
d_external [Var] | |
d_external [Term.Var] | |
d_iff [Prop] | |
d_interp [Propset] | |
d_interp [Pprod] |
Same as
Acsym.TERM .
|
d_interp [Funarr] | |
d_interp [Arith] | |
d_interp [Apply] | |
d_interp [Acsym.TERM] |
If
a is of the form b*c , then d_interp a returns (b, c).
|
d_interp [Ac.TERM] |
If
a is of the form b*c , then d_interp a returns (b, c).
|
d_ite [Prop] | |
d_let [Prop] | |
d_multq [Sym.Arith] | |
d_neg [Prop] | |
d_num [Sym.Arith] | |
d_num [Arith] | d_num a return q if a is a constant with
function symbol Sym.Num(q) , and raises Not_found otherwise.
|
d_of [Partition] |
Accessing the variable disequalities of a partititioning.
|
d_reify [Sym.Cl] | |
d_select [Funarr] | |
d_select_update [Funarr] | d_select a returns (b, i, x, j) if a is of the form a[i:=x][j] .
|
d_singleton [Clause] | |
d_sub [Sym.Bv] | |
d_uninterp [App] |
For a term
a such that is_uninterp a holds, d_uninterp a
returns the uninterpreted function symbol and the argument list of a .
|
d_update [Funarr] | |
d_var [Prop] | |
debug [Version] |
Level of debugging.
|
decompose [Pprod] | |
decompose [Acsym.TERM] |
Decompose
x*x*...*x*y*.... into (x, n) with n the
multiplicity of x in a and y*... .
|
decompose [Ac.TERM] |
Decompose
x*x*...*x*y*.... into (x, n) with n the
multiplicity of x in a and y*... .
|
def [Mpa.Q] | |
denominator [Mpa.Q] | |
dep [Solution.SET] | dep s y returns all x such that x = a in s , and
the variable y occurs in a .
|
dep [Jst] | |
dep [Combine.E] | dep i s x returns a set ys of variables such that
y in ys iff there is an x = a in s with y a subterm of a .
|
dep0 [Jst] | |
dep1 [Jst] | |
dep2 [Jst] | |
dep3 [Jst] | |
dep4 [Jst] | |
dep5 [Jst] | |
destruct [Term.Equal] | |
destruct [Term.App] | destruct a destructure an application a of the form
App(f, l) into (f, l) .
|
diff [V] | diff s1 s2 contains all variable equalities in s1 but not in s2 .
|
diff [Partition] | diff p q contains all facts in p but not in q .
|
diff [Solution.SET] | diff s1 s2 contains all equalities in s1 that are not in s2 .
|
diff [Infsys.LEVEL] | |
diff [D] | diff d1 d2 contains all disequalities in d1 not in d2 .
|
diff [Context] |
Difference.
|
diff [Combine.E] | diff s1 s2 returns the equality set s such that an equality e
is in s iff if it is in s1 but not in s2 .
|
difference [Infsys] | |
disapply [Apply] |
Propagate a disequalities
x <> y .
|
diseqs [Partition] | diseqs s x returns the set of all variable y disequal to x as stored
in the variable disequality part d of the partitioning s .
|
diseqs [D] | diseqs s x returns set of disequalites of the form x <> y
such that x <> y is represented in s .
|
disj [Jst.Pred] |
Disjunction.
|
disjoint [Dom] | disjoint d e holds iff the denotations of d and e
are disjoint.
|
disjunction [Shostak.T] | |
disjunction [Can.T] | |
dismerge [Partition] | diseq d s adds a disequality of the form x <> y to s .
|
dismerge [Infsys.ARITH] | |
dismerge [Infsys.EQ] | (g, a <> a; e; p) ==> (g; e'; p')
with a , b i -pure, |= e', p' <=> |= e, p, a <> b .
|
div [Mpa.Q] | |
divexact [Mpa.Z] | |
divide [Pprod] |
Divide
a of the form x * ... y^m ... *z by y^n , where n <= m .
|
do_at_exit [Tools] | |
do_at_reset [Tools] | do_at_reset() .
|
dom [Pprod] | tau lookup op al returns a constraint in Cnstrnt.t given a lookup
function, which is applied to each noninterpreted term, and by
propagation using abstract domain operations for the interpreted
symbols.
|
dom [Combine] | dom p a returns a domain d for a term a together with
a justification rho such that rho |- a in d .
|
dom [Arith] | |
dom_of [Var] | dom_of x returns the domain of interpretation of variable x ,
and raises Not_found if this domain is "unrestricted".
|
dom_of [Term.Var] | |
dom_of [Pprod] |
Abstract constraint interpretation
|
dom_of [Arith] | |
E | |
empty [V] |
The empty variable context.
|
empty [Term.Subst] | |
empty [Solution.EXT] | |
empty [Partition] |
The
empty partition.
|
empty [Solution.SET] |
The empty equality set.
|
empty [Infsys.Config] | |
empty [G] |
Empty set of inputs.
|
empty [D] |
The empty disequality context.
|
empty [Context] |
The empty logical context
|
empty [Combine.E] |
The empty equality configuration.
|
eq [V] | eq s t holds iff s and t are identical.
|
eq [Term] | eq a b holds iff a and b are syntactically equal.
|
eq [Sym] | eq f g succeeds iff f and g represent the same function symbol.
|
eq [Partition] | eq s t holds if the respective equality, disequality, and constraint parts
are identical, that is, stored in the same memory location.
|
eq [Name] | eq n m holds if the strings associated with n and m are
equal.
|
eq [Solution.SET] |
Test for identity of two solution sets.
|
eq [Infsys.LEVEL] | |
eq [G] |
Identity test for input facts.
|
eq [Fact] | |
eq [Euclid.Rat] |
Equality.
|
eq [Dom] | eq d e holds iff the denotation of d equals the
denotation of e .
|
eq [D] | eq s t holds iff s and t are 'physically' equal.
|
eq [Context] |
Identity test on contexts.
|
eq [Combine.E] |
Identity test for two equality sets.
|
eq [Clause] | |
eql [Term] | eql al bl holds iff al and bl are of the
form a1;...;an and b1;...;bn , respectively, and
if eq ai bi holds for all i .
|
eqs_of [Context] | |
equal [Mpa.Q] | |
equal [Mpa.Z] | |
equal [Bitv] | |
equal [Atom] |
Equality on atoms.
|
equality [Solution.SET] | equality s x yields an equality e of the form x = a with
justification rho if x is a dependent variable.
|
euclid [Euclid.S] |
Given two rational numbers
p , q , euclid p q finds integers
x , y , (p, q) satisfying p * x + q * y = (p, q) ,
where (p, q) denotes the greatest common divisor of p , q .
|
exists [V] | exists s p x holds if p y holds for some y congruent
to x modulo s .
|
exists [Th] | exists p holds if predicate p i
holds for some i .
|
exists [Solution.DEP] | exists s p y holds iff p e holds for all equalities
x = a with x dependent on y .
|
exists [Solution.SET] | exists f s checks if f e holds for all equalities e in s .
|
exists [Arith.Monomials.Neg] | |
exists [Arith.Monomials.Pos] | |
exists [Arith.Monomials] | |
exists_but [Th] | exists_but j p holds if predicate
p i holds for some i <> j .
|
exit [Trace] | exit l name arg pp outputs a function exit trace message
if l is currently active by first outputting name followed
by printing arg using the pp printer.
|
expt [Mpa.Q] | |
expt [Mpa.Z] | |
expt [Dom] | |
ext [Solution.SET] |
Return the value of the extension field.
|
F | |
f [Acsym.SIG] | |
f [Ac.SIG] | |
fail [Trace] | fail l exc outputs a failure warining if l is curently
active, and raises exception exc .
|
fill [Bitv] | |
finalize [Infsys.ARITH] | |
finalize [Infsys.EQ] |
Retrieve modified equality set.
|
find [V] | find s x returns the canonical representative of x
of the equivalence class in s containing x together
with a justification of the equality find s x = x .
|
find [Partition] | find s x returns the canonical representative of the equivalence
class in the partitioning s containing the variable x .
|
find [Solution.SET] | find s x yields (b, rho) if x is a dependent variable in s
with x = b ; otherwise, (x, refl) is returned with refl a
justification of x = x .
|
find [Combine.E] | find s th x is a if x = a is in the solution set for theory th
in s ; otherwise, the result is just x .
|
find [Can.OPS] | |
flag [Pretty] | |
floor [Mpa.Q] | |
floor [Euclid.Rat] |
Floor function on rationals.
|
fold [V] | fold f s e applies f x (y, rho) for each x = y with justification
rho in s and accumulates the result starting with e .
|
fold [Th] | fold f e applies f i to each theory i
and accumulates the result, starting with e ,
in an unspecified order.
|
fold [Term.Subst] | |
fold [Term] |
Fold operator
fold f a e on terms applies
argument function f to all variables in a
and accumulates the results starting with e .
|
fold [Pprod] | |
fold [Partition] | |
fold [Solution.DEP] | fold s f y e accumulates, starting with e , applications
of f to each equality x = a which x dependent on y .
|
fold [Solution.SET] | fold f s acc applies f e for each equality e in s
and accumulates the result starting with acc .
|
fold [Bitvector] | fold f a e applies f at uninterpreted positions of a and
accumulates the results starting with e .
|
fold [Arith.Monomials.Neg] | |
fold [Arith.Monomials.Pos] | |
fold [Arith.Monomials] |
Folding over the non-constant monomials of an arithmetic term.
|
fold [Arith] | fold f a e applies f at uninterpreted positions of a
and accumulates results starting with e .
|
fold [Acsym.TERM] |
If
a is of the form x1^m1*(x2^m2*...*xn^mn) , then fold f a e
is f x1 m1 (f x2 m2 (... (f xn mn e)...)) .
|
fold [Ac.TERM] |
If
a is of the form x1^m1*(x2^m2*...*xn^mn) , then fold f a e
is f x1 m1 (f x2 m2 (... (f xn mn e)...)) .
|
fold_left [Bitv] | |
fold_right [Bitv] | |
for_all [V] | for_all s p x holds if p y holds for all y congruent
to x modulo s .
|
for_all [Th] | for_all p holds if predicate p i holds
for all theories i .
|
for_all [Term] | forall p a holds if p x for all variables in a .
|
for_all [Solution.DEP] | for_all s p y holds iff p e holds for all equalities
x = a with x dependent on y .
|
for_all [Solution.SET] | for_all f s checks if f e holds for all equalities e in s .
|
for_all [Arith.Monomials.Neg] | |
for_all [Arith.Monomials.Pos] | |
for_all [Arith.Monomials] | |
for_all [Arith] | for_all f holds iff f x holds for all top-level
uninterpreted x in a .
|
for_all_but [Th] | for_all_but j p holds if predicate
p i holds for all i <> j .
|
frac [Mpa.Q] | |
fresh_diseq [Partition] |
Chooses a "fresh" variable disequality.
|
fresh_equal [Partition] |
Chooses a "fresh" variable equality.
|
from_string [Bitv] | |
func [Trace] | func l name pp qq f provides a trace wrapper for function
f for calling call before applying f and exit after
applying f .
|
func2 [Trace] | |
fuse [Term.Subst] | |
G | |
g [Infsys] |
Global variables for current input facts
g , current variable partitioning p .
|
garbage_collection_enabled [V] |
Switch for enabling/disabling garbage collection of noncanonical,
internal variables.
|
gc [V] | gc filter s removes variables x in removable s ,
if the test filter x succeeds.
|
gc [Partition] | gc p s removes all noncanonical, internal variables x with p x .
|
gc [Combine] | |
gcd [Mpa.Z] | |
ge [Mpa.Q] | |
ge [Mpa.Z] | |
get [Trace] | get () returns the set of currently active trace levels
as a list.
|
get [Sym.Propset] | |
get [Sym.Cl] | |
get [Sym.Array] | |
get [Sym.Bv] | |
get [Sym.Pprod] | |
get [Sym.Coproduct] | |
get [Sym.Product] | |
get [Sym.Arith] | |
get [Sym.Uninterp] | |
get [Sym] | get f returns a theory-specific operator together with
a tag for specifying the theory corresponding to f .
|
get [Jst.Mode] | |
get [G] | get g chooses a fact fct in g and returns this fact fct
together with g where fct is removed.
|
get [Bitv] | |
get_clause [G] | get_clause g removes a clause cl in g or raise Not_found .
|
gt [Mpa.Q] | |
gt [Mpa.Z] | |
H | |
hash [Term] | |
hash [Sym] |
Nonnegative hash value for function symbols.
|
hash [Name] |
Return hash values for names
n .
|
hash [Mpa.Q] | |
I | |
i [Sym.Cl] | |
id [Jst.Eqtrans] | id a returns (a, rho) such that rho |- a = a .
|
indent [Trace] | |
index_of [Atom] |
Retrieve the unique index from an atom-index pair.
|
infix [Pretty] | infix p str q (a, b) prints a using printer p , then it prints
str , and then b using printer b .
|
infixl [Pretty] | infixl pp op prints a list [a1;...;an] in the
form a1 op ... op an .
|
init [Bitv] | |
initialize [Infsys.ARITH] | |
initialize [Infsys.EQ] |
Intitialize inference system with equality set.
|
inj [Th] | inj i hashconses injection of theories i into Some(i) .
|
inj [Jst.Pred2] | |
inj [Dom] | |
integer_solve [Arith] | |
inter [Var.Cnstrnt] | |
inter [Three] | inter u v evaluates to Some(w) if both is_sub w u
and is_sub w v ; otherwise None is returned.
|
inter [Dom] | inter d1 d2 returns d iff the denotation of d is the
nonempty intersection of the denotations of d1 and d2 .
|
inv [Mpa.Q] | |
inv [Solution.SET] | inv s a yields (x, rho) if rho |- x = a is in s with
justification rho .
|
inv [Euclid.Rat] |
Inverse of Addition.
|
inv [Combine.E] | inv s a is x if there is x = a in the solution set for
theory th ; otherwise Not_found is raised.
|
inv [Can.OPS] | |
invlookup [Term.Subst] | |
is [Sym.Propset] | |
is [Sym.Cl] | |
is [Sym.Array] | |
is [Sym.Bv] | |
is [Sym.Pprod] | |
is [Sym.Coproduct] | |
is [Sym.Uninterp] | |
is [Funarr.Flat] | |
is_active [Trace] |
Test if certain trace level is active.
|
is_add [Sym.Arith] | |
is_app [Term] | is_app a holds iff a is of the form App _ .
|
is_apply [Sym.Cl] | |
is_atom [Prop] | |
is_c [Sym.Cl] | |
is_can [Th] | is_can i holds if i is a canonizable theory.
|
is_canonical [V] |
For a term variable
x , is_canonical s x holds
iff find s x returns x .
|
is_canonical [Partition] | |
is_car [Sym.Product] | |
is_cdr [Sym.Product] | |
is_conc [Sym.Bv] | |
is_connected [Atom] | is_connected atm1 atm2 holds iff vars_of atm1 and
vars_of atm2 not disjoint.
|
is_cons [Sym.Product] | |
is_const [Var] | |
is_const [Term.Var] | |
is_const [Term] | is_const a holds iff a is of the form App(_,[], _) .
|
is_const [Sym.Bv] | |
is_const [Propset] | |
is_const [Bitvector] | is_const a holds iff a is a bitvector constant.
|
is_create [Sym.Array] | |
is_dependent [Solution.SET] | is_dependent s x holds iff there is an a such that x = a is in s .
|
is_diophantine [Arith] | is_diophantine a holds iff all variables in a are integer.
|
is_diseq [Propset] | |
is_diseq [Partition] |
Apply the equality test on canonical variables.
|
is_diseq [D] |
Check if two terms are known to be disequal.
|
is_diseq [Coproduct] | is_diseq a b iff a , b are disequal in the theory of COP .
|
is_diseq [Bitvector] |
Two bitvector terms
a , b are disequal iff they disagree
on at least one position.
|
is_disj [Prop] | |
is_disjoint [Three] | is_disjoint u v holds iff the inter u v is None .
|
is_dom [Term.Var] | is_dom d x holds iff the domain e of x as obtained by Term.Var.dom_of x
is a subdomain of d (see also Dom.sub ).
|
is_empty [V] | |
is_empty [Sym.Propset] | |
is_empty [Propset] | |
is_empty [Partition] | |
is_empty [Solution.SET] | is_empty s holds iff s does not contain any equalities.
|
is_empty [Infsys.Config] | |
is_empty [G] | is_empty g holds iff g does not contain any inputs.
|
is_empty [D] |
Check if the argument disequality context is empty.
|
is_empty [Combine.E] |
Succeeds if all individual equality sets are empty.
|
is_empty [Arith.Monomials.Neg] | |
is_empty [Arith.Monomials.Pos] | |
is_equal [V] |
For variables
x , y[], is_equal s x y holds if and only
if x and y are in the same equivalence class modulo s .
|
is_equal [Term] | is_equal a b returns Three.Yes if Term.eq a b holds,, Three.No is a and b are two distinct constants in some theory th , and, Three.X if none of the above holds.
|
is_equal [Partition] |
Apply the equality test on variables only.
|
is_equal [La] | |
is_equal_or_diseq [Partition] |
Test for equality or disequality of canonical variables.
|
is_external [Term.Var] | |
is_false [Prop] | |
is_false [Boolean] | |
is_false [Atom] | is_false atm holds iff atm represents the false atom.
|
is_flat [Can.OPS] | |
is_fresh [Var] | is_fresh i x holds iff x is a fresh variable of theory i .
|
is_fresh [Term.Var] | |
is_full [Sym.Propset] | |
is_full [Propset] | |
is_i [Sym.Cl] | |
is_iff [Prop] | |
is_inconsistent [Context] | is_inconsistent s al is true iff the conjunction of
atoms in al is inconsistent in s .
|
is_independent [Solution.SET] | is_independent s x holds iff x is a variable in some a with
y = a in s .
|
is_inl [Sym.Coproduct] | |
is_inr [Sym.Coproduct] | |
is_int [Var] | is_int x holds iff x is constraint over the integers.
|
is_int [Term.Var] | is_int x holds if x is restricted to be interpreted over the integers.
|
is_int [Partition] | |
is_int [Euclid.Rat] |
Integer test of a rational.
|
is_int [Arith] | |
is_integer [Mpa.Q] | |
is_internal [Var] | is_internal x holds iff either is_rename x , is_slack x , or
is_fresh x holds.
|
is_internal [Term.Var] | is_internal x holds iff x is either a renaming, a fresh, or a slack variable.
|
is_interp [Product] | in_interp a holds if the top-level function symbol is
in the signature of P .
|
is_interp [Pprod] | |
is_interp [Funarr] | |
is_interp [Coproduct] | in_interp a holds if the top-level function symbol is
in the signature of COP .
|
is_interp [Bitvector] | is_interp a holds iff the top-level function symbol of a
is interpreted in the theory of bitvectors (see also module Sym .
|
is_interp [Arith] | is_interp a holds iff the toplevel function symbol in a is
a linear arithmetic function symbol.
|
is_interp [Acsym.TERM] | is_interp a holds iff a is of the form b*c .
|
is_interp [Ac.TERM] | is_interp a holds iff a is of the form b*c .
|
is_ite [Sym.Propset] | |
is_ite [Prop] | |
is_k [Sym.Cl] | |
is_let [Prop] | |
is_mult [Sym.Pprod] | |
is_multq [Sym.Arith] | |
is_neg [Prop] | |
is_neg [Mpa.Q] | |
is_neg [Arith.Monomials] | |
is_negatable [Atom] | is_negatable atm is always true.
|
is_negone [Mpa.Q] | |
is_none [Th] | |
is_none [Jst.Mode] | |
is_nonneg [Mpa.Q] | |
is_nonneg [Arith] |
Test if
a >= 0 .
|
is_nonneg_num [Arith] | is_nonneg_num a holds iff a represents a nonnegative number.
|
is_nonneg_slack [Var] | is_zero_slack x holds iff x is a nonnegative slack variable.
|
is_nonneg_slack [Term.Var] | |
is_nonpos [Mpa.Q] | |
is_nonpos_num [Arith] | is_nonpos_num a holds iff a represents a nonpositive number.
|
is_num [Sym.Arith] | |
is_num [Arith] | |
is_one [Mpa.Q] | |
is_one [Bitvector] | is_one a holds iff all bits in a are 1 .
|
is_one [Arith] | is_one a holds iff a is equal to mk_one .
|
is_outl [Sym.Coproduct] | |
is_outr [Sym.Coproduct] | |
is_pos [Mpa.Q] | |
is_pos [Arith.Monomials] | |
is_pos [Arith] |
Test if
a > 0 .
|
is_pos_num [Arith] | is_pos_num a holds iff a represents a positive number.
|
is_pure [Term.Equal] | |
is_pure [Term] | |
is_pure [Product] | is_pure a holds if every function symbol in a is in P ;
that is, only variables occur at uninterpreted positions.
|
is_pure [Fact.Pos] | |
is_pure [Fact.Nonneg] | |
is_pure [Fact.Diseq] | |
is_pure [Fact.Equal] | |
is_pure [Coproduct] | is_pure a holds if every function symbol in a is in COP ;
that is, only variables occur at uninterpreted positions.
|
is_pure [Arith] | is_pure a holds iff a is a linear arithmetic term; that is,
a is term equal to a numeral (constructed with Arith.mk_num ), a linear
multiplication (Arith.mk_multq ), or an addition (Arith.mk_add ).
|
is_pure [Can.OPS] | |
is_q [Arith] | is_q q a holds iff a is equal to the numeral mk_num q .
|
is_real [Var] | is_real x holds iff x is constraint over the reals.
|
is_real [Term.Var] | is_real x holds if x is restricted to be interpreted over the reals.
|
is_reify [Sym.Cl] | |
is_rename [Var] | is_rename x holds iff x is a rename variable.
|
is_rename [Term.Var] |
Variables are partitioned into renaming, external, fresh, free,
and slack variables, and the following recognizers can be used to test membership
of a variable into a partition.
|
is_s [Sym.Cl] | |
is_sat [Combine] | is_sat [c] applies applicable branching rules until
it finds a satisfiable configuration d (with empty input) for
which no branching rule is applicable; in this case Some(d) is returned.
|
is_select [Sym.Array] | |
is_shostak [Th] | is_shostak i holds if i is a Shostak theory.
|
is_slack [Var] | is_cnstrnt x holds iff x is a slack variable.
|
is_slack [Term.Var] | |
is_some_fresh [Var] | |
is_sub [Three] | is_sub u v holds if either u = v or u < v .
|
is_sub [Sym.Bv] | |
is_true [Prop] | |
is_true [Boolean] | |
is_true [Atom] | is_true atm holds iff atm represents the true atom.
|
is_true [Arith.Monomials] | |
is_uninterp [App] | is_uninterp a holds iff the function symbol of a is
uninterpreted (see module Sym ).
|
is_uninterpreted [Th] | |
is_unsat [Clause] | |
is_update [Sym.Array] | |
is_valid [Context] | is_valid s al is true iff the conjunction of
atoms in al is valid in s .
|
is_var [Var] | is_var x holds iff x is an external variable, that is,
it has been returned by a call to mk_external .
|
is_var [Term.Equal] | |
is_var [Term] | is_var a holds iff a is of the form Var _ .
|
is_var [Prop] | |
is_var [Fact.Pos] | |
is_var [Fact.Nonneg] | |
is_var [Fact.Diseq] | |
is_var [Fact.Equal] | |
is_var [Arith.Monomials] | |
is_zero [Mpa.Q] | |
is_zero [Bitvector] | is_zero a holds iff all bits in a are 0 .
|
is_zero [Arith] | is_zero a holds iff a is equal to mk_zero .
|
is_zero_slack [Var] | is_zero_slack x holds iff x is a zero slack variable.
|
is_zero_slack [Term.Var] |
Slacks are subpartitioned into zero and nonnegative slacks.
|
isolate [Arith] | isolate y (a, b) isolates y in an equality a = b ;
that is, if there is a b such that y = b iff a = b , then
b is returned.
|
iter [V] |
Iterate over the extension of an equivalence class.
|
iter [Th] | fold f applies f i for each theory i
in some unspecified order.
|
iter [Term] |
Iteration operator on terms.
|
iter [Pprod] | |
iter [Solution.DEP] | iter s f y applies f to each equality e of the
form x = a with justification rho such that x
is dependent on y .
|
iter [Solution.SET] | iter f s applies f e for each equality fact e in s .
|
iter [Bitvector] | iter f a applies f for all toplevel subterms of a
which are not interpreted in the theory of bitvectors.
|
iter [Bitv] | |
iter [Arith.Monomials.Neg] | |
iter [Arith.Monomials.Pos] | |
iter [Arith] | iter f a applies f at uninterpreted positions of a .
|
iter [Acsym.TERM] |
If
a is of the form x1^m1*(x2^m2*...*xn^mn) , then iter f a
is f x1 m1; f x2 m2; ...; f xn mn .
|
iter [Ac.TERM] |
If
a is of the form x1^m1*(x2^m2*...*xn^mn) , then iter f a
is f x1 m1; f x2 m2; ...; f xn mn .
|
iter_if [Partition] |
Iterate over the
x 's satisfying f in the equivalence
class of y .
|
iterate [Pprod] | |
iterate [Acsym.TERM] |
For
n>=1 , iterate a n iterates make a n-1 times.
|
iterate [Ac.TERM] |
For
n>=1 , iterate a n iterates make a n-1 times.
|
iteri [Bitv] | |
K | |
k [Term.Var] | k is a global variable for generating names of internally generated
variables.
|
k [Sym.Cl] | |
L | |
la [Th] |
Theory identifiers.
|
la_of [Combine.E] | |
lazy_sigma [App] | |
lcm [Mpa.Z] | |
lcm_of_denominators [Arith] | |
le [Mpa.Q] | |
le [Mpa.Z] | |
length [Bitv] | |
level [Infsys.LEVEL] | |
lhs [Term.Equal] | |
lhs_of [Fact.Diseq] | |
lhs_of [Fact.Equal] | |
linenumber [Tools] | linenumber used by lexer and parser.
|
list [Pretty] |
Printing lists in Ocaml syntax.
|
lookup [Term.Subst] | |
lower [La] | |
lt [Mpa.Q] | |
lt [Mpa.Z] | |
M | |
make [Term.Equal] | |
make [Sym.Uninterp] | |
make [Fact.Pos] | |
make [Fact.Nonneg] | |
make [Fact.Diseq] | |
make [Fact.Equal] | |
make [Acsym.TERM] |
For canonical
a , b , make a b returns a canonical
term c with AC |= c = a * b .
|
make [Ac.TERM] |
For canonical
a , b , make a b returns a canonical
term c with AC |= c = a * b .
|
map [Shostak.T] | |
map [Propset] | map f a applies f to all top-level uninterpreted
subterms of a , and rebuilds the interpreted parts in order.
|
map [Product] | map f a applies f at uninterpreted positions of a
an builds a canonical term from the results.
|
map [Pretty] |
Printing of a list of pairs as a finite map.
|
map [Pprod] | |
map [Funarr] |
Applying a term transformer at all uninterpreted positions
map f (mk_select a j) equals mk_select (map f a) (map f j) , map f (mk_update a i x) equals mk_select (map f a) (map f i) (map f x) , Otherwise, map f x equals f x
|
map [Fact.Pos] | |
map [Fact.Nonneg] | |
map [Fact.Diseq] | |
map [Fact.Equal] | |
map [Fact] | |
map [Coproduct] | map f a homomorphically applies f at uninterpreted positions
of a and returns the corresponding canonical term.
|
map [Bitvector] | map f a applies f to all top-level uninterpreted
subterms of a , and rebuilds the interpreted parts in order.
|
map [Bitv] | |
map [Arith] |
Applying a term transformer
f at uninterpreted positions.
|
map [Apply] | map f a applies the term transformer f to each uninterpreted
subterm of a and rebuilds the term a by using the simplifying constructors
mk_apply and mk_abs .
|
map [App] | |
map [Acsym.TERM] | map f a applies f at uninterpreted positions and
recanonizes the result.
|
map [Can.T] | |
map [Ac.TERM] | map f a applies f at uninterpreted positions and
recanonizes the result.
|
map2 [Fact.Equal] | |
map_lhs [Fact.Equal] | |
map_rhs [Fact.Equal] | |
mapargs [Jst.Eqtrans] | mapargs app f a maps f op over the arguments al of
an application a of the form op(al) .
|
mapi [Bitv] | |
mapl [Term] |
Mapping over list of terms.
|
mapq [Arith.Monomials] | |
max [Mpa.Q] | |
max_length [Bitv] | |
maximize [Combine] | maximize c a returns either (b, rho) such that b+ is empty and rho |- la => a = b , or, raises La.Unbounded if a is unbounded in the linear
arithmetic la equality set of c .
|
mem [Th] | mem i jl tests if i is in jl .
|
mem [Dom] | mem q d tests if the rational q is an element of
the denotation of d .
|
mem [Arith.Monomials.Neg] | |
mem [Arith.Monomials.Pos] | |
merge [V] |
Adding a variable equality
x = y by destructively
updating context s .
|
merge [Partition] | merge e s adds a new variable equality e of the form x = y into
the partition s .
|
merge [Infsys.ARITH] | |
merge [D] | merge e s propagates an equality e of the form x = y
into the disequality context by computing a new disequality
context which is equal to s except that every x has been
replaced by y .
|
merge [Infsys.EQ] | (g, a = b; e; p) ==> (g; e'; p')
with a , b i -pure, , |= e', p' <=> |= e, a = b, p , if e' |= x = y then p' |= x = y .
|
min [Mpa.Q] | |
minimize [Combine] |
Minimize is the dual of maximize.
|
minus [Mpa.Q] | |
mixfix [Pretty] | |
mk_add [Sym.Arith] | |
mk_add [Arith] | mk_add a b constructs the normalized linear arithmetic term for the sum
of a and b .
|
mk_addl [Arith] | mk_addl iterates Arith.mk_add as follows: mk_addl [] is mk_zero , mk_addl [a] is a , mk_addl [a0;...;an] is mk_add a0 (mk_addl [a1;...;an])
|
mk_addq [Arith] | mk_addq q a creates the normalized linear arithmetic term
representing q + a .
|
mk_app [Term.App] | mk_app f l constructs a function application of symbol f to a list l .
|
mk_apply [Apply] | mk_apply c a al builds an application with range type c by
applying term a to an argument term b .
|
mk_bitvector [Var.Cnstrnt] | |
mk_c [Apply] | |
mk_car [Sym.Product] | |
mk_car [Product] |
Given a canonical term
a , mk_car a constructs a
canonical term for representing the first projection on a .
|
mk_cdr [Sym.Product] | |
mk_cdr [Product] |
Given a canonical term
a , mk_cdr a constructs a
canonical term for representing the second projection on a .
|
mk_compl [Propset] | |
mk_conc [Sym.Bv] | |
mk_conc [Bitvector] | mk_conc n m b1 b2 concatenates a bitvector b1 of width n
and a bitvector b2 of width m .
|
mk_conj [Prop] | |
mk_cons [Sym.Product] | |
mk_cons [Product] |
Given canonical terms
a , b , mk_cons a b constructs a
canonical term for representing a pair of a and b .
|
mk_const [Var] | |
mk_const [Term.App] | mk_const c constructs a function application of symbol c to the empty
argument list.
|
mk_const [Term.Var] |
Construct hashconsed "constant" variables
|
mk_const [Sym.Bv] | |
mk_const [Bitvector] | mk_const c is the constructor for building constant bitvectors,
in which all bits are known to be either 0 or 1 .
|
mk_create [Sym.Array] | |
mk_create [Funarr.Flat] | |
mk_create [Funarr] |
Creating constant array.
|
mk_decr [Arith] | mk_decr a creates the normalized linear arithmetic term
representing a - 1 .
|
mk_diseq [Atom] |
The atom-index pair
mk_diseq (a, b) represents the disequality a <> b .
|
mk_disj [Prop] | |
mk_empty [Sym.Propset] | |
mk_empty [Propset] | |
mk_eps [Bitvector] | mk_eps is the constant bitvector of length 0 .
|
mk_equal [Atom] |
The atom-index pair
mk_equal (a, b) represents the equality a = b .
|
mk_expt [Pprod] | |
mk_external [Var] | mk_external n d creates an external variable with associated name n
and optional domain constraint d .
|
mk_false [Prop] | |
mk_false [Boolean] | |
mk_false [Atom] |
Atom-index pair for representing the
false atom.
|
mk_fresh [Var] | mk_fresh th i d creates a fresh variable associated with
theory i and optional domain d .
|
mk_fresh [Term.Var] | mk_fresh th None d creates a theory-specific fresh variable with optional
domain restriction d , and mk_fresh th Some(i) d creates the theory-specific
fresh variable of index i with optional domain restriction d .
|
mk_full [Sym.Propset] | |
mk_full [Propset] | |
mk_i [Apply] | |
mk_iff [Prop] | |
mk_incr [Arith] | mk_incr a creates the normalized linear arithmetic term
representing a + 1 .
|
mk_inj [Coproduct] |
Generalized injection of the form
inr(inr(....(inr(x))))
with x uninterpreted or of the form inr(y) .
|
mk_inl [Sym.Coproduct] | |
mk_inl [Coproduct] |
For canonical
a , mk_inl a constructs a canonical term
for representing inl(a)
|
mk_inr [Sym.Coproduct] | |
mk_inr [Coproduct] |
For canonical
a , mk_inr a constructs a canonical term
for representing inr(a)
|
mk_inter [Propset] | |
mk_ite [Sym.Propset] | |
mk_ite [Propset] |
Constructing BDDs for conditional set constructor.
|
mk_ite [Prop] | |
mk_k [Apply] | |
mk_let [Prop] | |
mk_mult [Sym.Pprod] | |
mk_mult [Pprod] |
Constructing a term for representing
a * b .
|
mk_multl [Pprod] | |
mk_multq [Sym.Arith] | |
mk_multq [Arith] | mk_multq q a creates the normalized linear arithmetic term
representing q * a .
|
mk_neg [Prop] | |
mk_neg [Arith] | mk_neg a creates the normalized linear arithmetic term
representing -a .
|
mk_neglit [Prop] | |
mk_nonneg [Atom] |
The atom-index pair
mk_nonneg a represents the nonnegativity
constraint a >= 0 .
|
mk_num [Sym.Arith] | |
mk_num [Arith] | mk_num q creates a constant mk_app (num q) []
|
mk_one [Bitvector] | mk_one n is the constant one bitvector of length n
|
mk_one [Arith] | mk_one is mk_num Mpa.Q.one
|
mk_out [Coproduct] |
Generalized coinjection:
mk_out 0 a = mk_outl a , mk_out 1 a = mk_outr a , mk_out i a = mk_outr (mk_out (i - 1) x) if i > 1 , Otherwise, the value of mk_out is unspecified.
|
mk_outl [Sym.Coproduct] | |
mk_outl [Coproduct] |
For canonical
a , mk_outl a constructs a canonical term
for representing outl(a)
|
mk_outr [Sym.Coproduct] | |
mk_outr [Coproduct] |
For canonical
a , mk_outr a constructs a canonical term
for representing outr(a)
|
mk_pos [Atom] |
The atom-index pair
mk_nonneg a represents the positivity
constraint a > 0 .
|
mk_poslit [Prop] | |
mk_proj [Product] | mk_proj i a projects the term ai in a tuple
of the form (a1, ((a2, ...)...), an) .
|
mk_real [Var.Cnstrnt] | |
mk_rename [Var] | mk_rename n d constructs a rename variable with associated
name "n!i" and optional domain constraint.
|
mk_rename [Term.Var] | mk_rename n None constructs a fresh variable, where
'fresh' means that the index part of this fresh variable
(see Module Term.Var ) is larger than Term.Var.k ; as a side-effect,
Term.Var.k is incremented.
|
mk_s [Apply] | |
mk_select [Sym.Array] | |
mk_select [Funarr.Flat] | |
mk_select [Funarr] | mk_select a j constructs a canonical term equivalent
to App(select, [a; j]) .
|
mk_slack [Var] |
-
mk_slack i Zero creates a zero slack variable with 0
as the only possible interpretation.
|
mk_slack [Term.Var] | mk_slack None sl constructs a fresh slack variable,
and mk_slack Some(i) sl construct a slack variable of index i .
|
mk_sub [Sym.Bv] | |
mk_sub [Bitvector] | mk_sub n i j x returns the representation of the bitvector
for the contiguous extraction of the j-i+1 bits i through j
in the bitvector x of length n .
|
mk_sub [Arith] | mk_sub a b creates the normalized linear arithmetic term
representing a - b .
|
mk_true [Prop] | |
mk_true [Boolean] | |
mk_true [Atom] |
Atom-index pair for representing the
true atom.
|
mk_tuple [Product] |
For
n > 0 canonical terms ai , 0 <= i <= n ,
mk_tuple [a1;a2;...;an] constructs a canonical
representation of (a1, ((a2, ...)...), an) .
|
mk_two [Arith] | mk_one is mk_num Mpa.Q.one
|
mk_union [Propset] | |
mk_update [Sym.Array] | |
mk_update [Funarr.Flat] | |
mk_update [Funarr] | mk_update a x i constructs a canonical term equivalent
to App(update, [a;x;i]) .
|
mk_var [Term.Var] | mk_var n d constructs an external variable (see Var.mk_external )
of name n and optional domain constraint d .
|
mk_var [Prop] | |
mk_zero [Bitvector] | mk_zero n is just defined to be the constant zero bitvector of length n
|
mk_zero [Arith] | mk_zero is mk_num Mpa.Q.zero
|
model [La] | model (p, s) xs returns an assignment rho
for the variables in xs with bindings x |-> q .
|
model [Combine] |
Model construction.
|
msg [Trace] | msg l name arg pp outputs a trace message
if l is currently active by first outputting name followed
by printing arg using the pp printer.
|
mult [Mpa.Q] | |
mult [Mpa.Z] | |
mult [Dom] | |
multiplicity [Pprod] | |
multiplicity [Acsym.TERM] | multiplicity x a counts the number
of interpreted occurrences of x in a .
|
multiplicity [Ac.TERM] | multiplicity x a counts the number
of interpreted occurrences of x in a .
|
multl [Dom] | |
multq [Dom] | |
N | |
name_of [Var] | name_of x returns the name associated with a variable x .
|
name_of [Term.Var] | name_of a returns the name n if a is a variable of the
form Var(n) ; otherwise the result is undefined.
|
nat2bitv [Bitvector] | nat2bitv n i returns the a bitvector of length n
representing the unsigned interpretation of the nonnegative
integer i .
|
negate [Atom] | negate f atm ...
|
negone [Mpa.Q] | |
nl [Th] | |
nl_merge [La] | |
nl_of [Combine.E] | |
no [Jst.Rel2] | |
nonconstant_monomials_of [Arith] |
If
a is of the form q + a1 + ... + an , then nonconstant_of a returns
the list of monomials [a1; ...; an]
|
nonconstant_of [Arith] |
If
a is of the form q + a' , then nonconstant_of a returns a'
|
nonneg [Var] | nonneg d constructs Nonneg(d) .
|
nonneg [Infsys.ARITH] | (g, a >= 0; e; p) ==> (g; e'; p')
with a pure, |= e', p' <=> |= e, a >= 0, p , if e' |= x = y then p' |= x = y .
|
normalize [Infsys.ARITH] |
Above is identical to
Infsys.EQ .
|
normalize [Infsys.EQ] | (g; e; p) ==> (g'; e'; p')
where source and target configuration are equivalent.
|
number [Pretty] | |
numerator [Mpa.Q] | |
O | |
occurs [Term] | occurs a b holds if term a occurs in b .
|
of_atom [Atom] |
Construct an atom-index pair with unique index from an atom.
|
of_axioms [Jst] | |
of_diseq [Fact] | |
of_equal [Fact] | |
of_equal [Can.T] | |
of_index [Atom] | of_index n returns an atom-index pair of index n if such and
atom-index pair has been created since the last Tools.do_at_reset .
|
of_int [Mpa.Q] | |
of_int [Mpa.Z] | |
of_ints [Mpa.Q] | |
of_list [Clause] | |
of_q [Dom] | of_q q returns Int if the rational q is
an integer, and Real otherwise.
|
of_string [Th] | of_string n returns theory identifier i
if to_string i equals to n ; otherwise the
result is undefined.
|
of_string [Pretty.Mode] | |
of_string [Name] | of_string s constructs a name with associated string s .
|
of_string [Mpa.Q] | |
of_string [Jst.Mode] | |
of_three [Jst.Three] | |
of_var_diseq [Can.T] | |
of_var_equal [Can.T] | |
of_z [Mpa.Q] | |
one [Mpa.Q] | |
one [Mpa.Z] | |
one [Euclid.Rat] | |
option [Pretty] | |
orelse [Jst.Rel2] | |
orelse [Jst.Rel1] | |
orelse [Jst.Pred2] | |
orient [Term] | orient (a, b) is (b, a) if b is greater than a ,
and (a, b) otherwise.
|
out [Th] |
Returns
i if argument is of the form Some(i) , and raises
Not_found otherwise.
|
P | |
p [Th] | |
p [Infsys] | |
p_of [Combine.E] | |
pair [Pretty] | |
partition_of [Context] | p_of s returns the partitioning associated with s .
|
pointwise [Jst.Eqtrans] | |
pos [Infsys.ARITH] | (g, a > 0; e; p) ==> (g; e'; p')
with a pure, |= e', p' <=> |= e, a > 0, p , if e' |= x = y then p' |= x = y .
|
post [Pretty] | |
pow [Mpa.Z] | |
pp [Var.Cnstrnt] | |
pp [Var] |
Pretty-printer for variables.
|
pp [V] |
Pretty-printing
|
pp [Three] |
Pretty-printing
|
pp [Th] |
Pretty-printing theories.
|
pp [Term.Subst] | |
pp [Term.Equal] | |
pp [Term] |
Pretty-printing of terms.
|
pp [Sym.Propset] | |
pp [Sym.Cl] | |
pp [Sym.Array] | |
pp [Sym.Bv] | |
pp [Sym.Pprod] | |
pp [Sym.Coproduct] | |
pp [Sym.Product] | |
pp [Sym.Arith] | |
pp [Sym.Uninterp] | |
pp [Sym] |
Pretty-printing applications of symbols to an argument list.
|
pp [Solution.EXT] | |
pp [Prop.Assignment] | |
pp [Prop] | |
pp [Partition] |
Pretty-printing a partitioning.
|
pp [Name] |
Pretty-printing of names.
|
pp [Mpa.Q] | |
pp [Mpa.Z] | |
pp [Solution.SET] |
Pretty-printing a solution set.
|
pp [La] |
Print a partitioned version of
s .
|
pp [Jst] | |
pp [Infsys.LEVEL] | |
pp [Infsys.Config] |
Pretty-printing configurations.
|
pp [G] |
Pretty-printing input facts.
|
pp [Fact.Pos] | |
pp [Fact.Nonneg] | |
pp [Fact.Diseq] | |
pp [Fact.Equal] | |
pp [Fact] |
Pretty-printing the atom of a justification.
|
pp [Dom] | |
pp [D] |
Pretty-printing.
|
pp [Context.Status] | |
pp [Context] |
Pretty-printing the context of a state.
|
pp [Combine.E] |
Pretty-printing of combined equality set.
|
pp [Clause] | |
pp [Atom] |
Pretty-printing an atom.
|
pp_i [Combine.E] |
Pretty-printing of an individual equality set.
|
pp_index [Solution] | |
pretty [Var] | |
print_justification [Fact] | Fact.pp prints justification only if this flag is set to true .
|
proc [Trace] | proc l name pp f is just func l name pp Pretty.unit f .
|
process [Combine] |
Given a starting configuration
({fct}, e, p) , process applies
all rules of the combined inference system (except branching rules).
|
profile [Tools] | profile str f profiles function f , and
registers an exit function which outputs the number of calls
of this function, and the total time spent in this function;
the argument str is usually just the name of the function.
|
profiling [Tools] | |
propagate [Infsys.ARITH] | |
propagate [Infsys.EQ] | (g, e; p) ==> (g; e'; p)
with e |= x = y , , notp |= x = y , , |= e, p <=> |= e', p'
|
propagate_diseq [Infsys.ARITH] | |
propagate_diseq [Infsys.EQ] | (g; e; p) ==> (g; e'; p')
with p' |= x <> y , |= e', p' <=> |= e, p .
|
put [G] | put fct g adds fact fct to g .
|
put_clause [G] | put_clause g adds a clause cl to g .
|
Q | |
qsolve [Arith] | solve e solves the equation e of the form a = b over the
rationals.
|
R | |
registered [Trace] | |
reify [Sym.Cl] | |
removable [V] |
Set of removable variables.
|
remove [Trace] | remove l deactivates the trace level l .
|
replace [Jst.Eqtrans] | |
replace [G] | replace e g with e of the form x = a replaces
occurrences of a in g with x .
|
replace [Fact] | |
reset [Trace] |
Reset the set of trace levels to the empty set, that is,
all tracing is disabled.
|
restrict [Solution.EXT] | |
restrict [Solution.SET] | restrict s x removes equalities of the form x = a in s .
|
rhs [Term.Equal] | |
rhs_of [Fact.Diseq] | |
rhs_of [Fact.Equal] | |
S | |
s [Sym.Cl] | |
sat [Prop] |
might fail if already in use.
|
semantic_coi_min [Context] | |
set [Th] | |
set [Pretty] |
Printing of a list as a set.
|
set [Jst.Mode] | |
set [Context.Mode] | |
set [Bitv] | |
set_assertion_frequency [Prop] | |
set_clause_relevance [Prop] | |
set_cleanup_period [Prop] | |
set_num_refinements [Prop] | |
set_of [Combine.E] | |
set_polarity_optimization [Prop] | |
set_remove_subsumed_clauses [Prop] | |
set_validate [Prop] | |
set_verbose [Prop] |
Parameter settings for SAT solver
|
shiftl [Bitv] | |
shiftr [Bitv] | |
show_explanations [Prop] | |
sigma [Propset] |
Canonizer.
|
sigma [Product] | sigma op l applies the function symbol op from the pair
theory to the list l of argument terms to build a canonical
term equal to op(l) .
|
sigma [Pprod] | |
sigma [Funarr] |
Array canonizer.
|
sigma [Coproduct] | sigma op [a] applies mk_inl a if op is equal to
the inl symbol.
|
sigma [Combine] |
Theory-specific canonizers.
|
sigma [Bitvector] |
Given a bitvector symbol
f (see module Sym ) and a list
l of arguments, sigma f l returns a concatenation normal form (CNF)
of the application 'f(l)' .
|
sigma [Arith] | sigma op al applies the linear arithmetic function symbol
to the list of arguments al such that the result is equal
to App(op, al) in this theory and normalized if all terms in
al are normalized.
|
sigma [Apply] |
Depending on the function symbol
f , sigma f al uses the constructors
Apply.mk_apply to compute the normal-form of applying f to the
arguments al .
|
sigma [App] | |
sigma [Acsym.TERM] |
If
f equals * , then sigma f [a1; a2] reduces
to make a1 a2 ; otherwise the uninterpreted application f(a1, a2)
is built.
|
sigma [Can.T] | |
sigma [Ac.TERM] |
If
f equals * , then sigma f [a1; a2] reduces
to make a1 a2 ; otherwise the uninterpreted application f(a1, a2)
is built.
|
simplify [Combine] |
Simplification of atoms in a context
(e, p) by canonizing
component terms using Combine.can .
|
singleton [Clause] | |
solve [Shostak.T] | |
solve [Propset] |
Solver
|
solve [Product] |
Given an equality
a = b , the pair solver solve(a, b) raises the exception Exc.Inconsistent iff the equality
a = b does not hold in P , or, returns a solved list of equalities x1 = a1;...;xn = an
with xi variables in a or b , the xi are pairwise disjoint,
and no xi occurs in any of the ai . The ai are all in
canonical form, and they might contain newly generated variables
(see Term.Var.mk_fresh ).
|
solve [Euclid.S] | solve [c1;...;cn] b yields a particular solution
for a linear diophantine equation c0 * x0 + ... + cn * xn = b
with nonzero, rational coefficients ci , for i = 1,...,n
with n >= 1 .
|
solve [Coproduct] |
Given an equality
a = b , solve(a, b) raises the exception Exc.Inconsistent iff the equality
a = b does not hold in COP , or, returns a solved list of equalities x1 = a1;...;xn = an
with xi variables in a or b , the xi are pairwise disjoint,
and no xi occurs in any of the ai . The ai are all in
canonical form, and they might contain newly generated variables
(see Term.Var.mk_fresh ).
|
solve [Combine] |
Theory-specific solvers.
|
solve [Bitvector] | solve b either fails, in which case b is unsatisfiable in the
given bitvector theory or it returns a list of equations
[(x1,e1);...(xn,en)] such that xi is a non bitvector term,
all the xi are pairwise disjoint, none of the xi occurs in any of
the terms ej , and, viewed as a conjunction of equivalences, the result
is equivalent (in the theory of bitvectors) with b .
|
solve [Arith] | |
solve [Apply] |
Work in progress.
|
statistics [Prop] | |
statistics [Context] |
Statistics.
|
status [Term] | status a classifies term a into one of: variables, pure terms with all function symbols drawn from a single theory i , mixed terms. In this case, a maximal pure term is retured.
|
status [Fact.Pos] | |
status [Fact.Nonneg] | |
status [Fact.Diseq] | |
status [Fact.Equal] | |
string [Pretty] | |
sub [Var.Cnstrnt] | |
sub [Mpa.Q] | |
sub [Mpa.Z] | |
sub [Dom] | sub d e holds iff the denotation of d is a subset of the
denotation of e .
|
sub [Bitv] | |
subterm [Term] | subterm a b holds if a is a subterm of b .
|
succ [Mpa.Z] | |
sym_of [Term.App] | sym_of a returns the function symbol f of an application
a of the form App(f,_) .
|
syntactic_coi_min [Context] | |
T | |
term_of [Fact.Pos] | |
term_of [Fact.Nonneg] | |
th [Shostak.T] | |
th [Acsym.SIG] | |
th [Ac.SIG] | |
th [Can.T] | |
theory_of [Term.App] | theory_of a returns the theory associated with the top-level
function symbol of a , and raises Not_found otherwise.
|
theory_of [Sym] | |
three [Pretty] | |
to_int [Mpa.Z] | |
to_list [Solution.SET] | to_list s builds up a list of equalities from the solved form s .
|
to_stderr [Pretty] | to_stderr pp transforms a printer to print on stdout .
|
to_stdout [Pretty] | to_stdout pp transforms a printer pp to print on stdout .
|
to_string [Th] | to_string i returns a name for theory i .
|
to_string [Term] |
Pretty-printing a term to a string.
|
to_string [Pretty.Mode] | |
to_string [Pretty] | to_string pp transforms a printer to print on a string.
|
to_string [Name] | to_string n returns the string associated with n .
|
to_string [Mpa.Q] | |
to_string [Mpa.Z] | |
to_string [Jst.Mode] | |
to_string [Dom] | |
to_string [Bitv] | |
to_string [Atom] |
Pretty-printing an atom to a string.
|
to_three [Jst.Three] | to_three fcts p a accumulate facts in the result of p a
in global variable fcts and returns a corresponding result of type
Three.t .
|
to_z [Mpa.Q] | |
totalize [Jst.Eqtrans] | |
trace [Jst.Rel2] | |
trace [Jst.Rel1] | |
trace [Jst.Pred2] | |
trace [Jst.Pred] | |
trace [Jst.Eqtrans] | |
triple [Pretty] | |
two [Mpa.Q] | |
two [Mpa.Z] | |
U | |
u [Th] | |
u_of [Combine.E] |
Projections to individual equality sets.
|
union [Three] | union u v evaluates to w if both is_sub u w
and is_sub v w holds.
|
union [Dom] | union d1 d2 returns d iff the denotation
d is the union of the denotations of d1 and d2 .
|
unit [Pretty] | |
unsafe_get [Bitv] | |
unsafe_set [Bitv] | |
unsat [Clause] | |
update [Solution.EXT] | |
update [Solution.SET] | update s e updates s with a
new equality of the form, say, x = a .
|
upper [La] | upper s a returns either (b, rho) such that b+ is empty and rho |- a = b , or, raises Unbounded if a is unbounded in s .
|
upper_of [Context] | upper_of s returns an upper bound on the indices of all fresh
variables in s .
|
utime [Tools] | utime f a returns not only the result of applying f to a
but also the time required to compute the function.
|
V | |
v_of [Partition] |
Accessing the variable equalities of a partitioning.
|
value [Context.Mode] | |
variable_choose [Arith.Monomials.Neg] | |
variable_choose [Arith.Monomials.Pos] | |
variable_choose [Arith.Monomials] | |
variable_least_of [Arith.Monomials.Neg] | |
variable_least_of [Arith.Monomials.Pos] | |
vars_of [Term] |
Return set of variables.
|
vars_of [Atom] | vars_of atm collects all variables in atm .
|
verbose [Context] | |
version [Version] |
Version and build date of current ICS version.
|
W | |
width [Sym.Bv] | |
width [Bitvector] |
Computes the width of a bitvector term, and returns
None if
the argument is not an application of a bitvector symbol
|
width_of [Var] | width_of x returns the length n of variable x
with a bitvector interpretation, and raises Not_found otherwise.
|
width_of [Term.Var] | with_of x returns the length of the bitvector interpretation of x ,
or raises Not_found .
|
Y | |
yes [Jst.Rel2] | |
yes_or_no [Jst.Rel2] | |
yes_or_no [Jst.Rel1] | |
Z | |
zero [Mpa.Q] | |
zero [Mpa.Z] | |
zero [Euclid.Rat] |
Neutral element of addition.
|
zsolve [Arith] |
Solution for a linear diophantine equation.
|