_false [Fun] | |
_true [Fun] | |
A | |
a_step [Tl_form.Form] | |
abd_bi_substs [Sl_abduce] | |
abd_substs [Sl_abduce] | abd_substs f f' returns an option result that consists of a pair of
formulas (g, g') and a list of substitutions substs such that: f entails g , g' entails f' , for all substitutions theta in substs , theta applied to g' is a
subformula of g , and if the optional argument allow_frame=true is
set to false, then also the spatial parts are equal.
|
add [Sl_rho] | |
add [Sl_uf] | |
add [Hashset.S] | |
add_axiom [Sigs.PROOF] | |
add_backlink [Sigs.PROOF] | |
add_bindings [Utilsigs.OrderedMap] |
Add all bindings in provided list to map.
|
add_constraints [Sl_form] | add_constraints f cs returns the formula the results by adding cs to the
constraints already in f
|
add_deq [Sl_heap_rho] | |
add_deq [Sl_heap] | |
add_eq [Sl_heap_rho] | |
add_eq [Sl_heap] | |
add_ind [Sl_heap_rho] | |
add_ind [Sl_heap] | |
add_inf [Sigs.PROOF] | |
add_pto [Sl_heap_rho] | |
add_pto [Sl_heap] | |
add_subprf [Sigs.PROOF] | add_subprf p idx p' replaces the node idx in p' with a copy of p .
|
all_nodes [Sigs.PROOFRULE] |
Ready-made selection functions doing the obvious.
|
all_pairs [Ord_constraints] | all_pairs cs returns all of the tag pairs (a , b ) such that a <= b
is entailed by some constraint in cs
|
all_subheaps [Sl_heap_rho] | all_subheaps h returns a list of all the subheaps of h .
|
all_subheaps [Sl_heap] | all_subheaps h returns a list of all the subheaps of h .
|
ancestor_nodes [Sigs.PROOFRULE] | |
anonymous [VarManager.I] |
An "unidentified" variable
|
anonymous [Tags] | |
append [Blist] |
Catenate two ts.
|
apply [VarManager.SubstSig] |
Apply a substitution to a variable
|
apply [Pair] |
Apply a function taking two arguments to the members of a pair.
|
apply_to_tag [Tagpairs] | apply_to_tag tps t treats tps as a substitution and applies it to t .
|
args [Sl_tpred] | |
args [Sl_pred] | |
arity [Sl_indrule] | |
arity [Sl_tpred] | |
arity [Sl_pred] | |
assoc [Blist] | assoc a l returns the value associated with key a in the t of
pairs l .
|
assq [Blist] |
Same as
List.assoc , but uses physical equality instead of structural
equality to compare keys.
|
attempt [Sigs.ABDRULE] | |
attempt [Sigs.PROOFRULE] |
Try a rule and if it fails act as
identity .
|
attempt [Sigs.SEQTACTICS] | |
avoid [VarManager.SubstSig] | avoid vars subvars
returns a substitution that takes all variables in subvars to
variables fresh in vars U subvars , respecting existential
quantification / free variables.
|
avoid_replacing_tags [Sl_unify.Unidirectional] | |
avoid_replacing_trms [Sl_unify.Unidirectional] |
A state update check which prevents replacements of variables within the
given set of terms.
|
B | |
backtrack [Unification] | backtrack u takes a cps-style unifier u and produces a
backtracking unifier that returns a list of all possible
solutions returned by u such that cont solution is not
None.
|
bfs [Sigs.ABDUCER] | |
bind [Option] | |
bind [Blist] | |
bindings [Sl_rho] |
Return mapping as a list of pairs of terms and values
Additional guarantees: Pairs are ordered lexicographically, based on
Sl_term.compare .
|
bindings [Sl_uf] |
Return mapping as a list of pairs, where pair members are ordered by
|
biunify [Sl_tpreds] | |
biunify [Sl_tpred] | |
biunify [Sl_pred] | |
biunify [Sl_ptos] | |
biunify [Sl_pto] | |
biunify [Sl_tpair] | |
biunify [Sl_term.FList] |
Unifies two lists of terms by producing substitutions to act on each list respectively
|
biunify [Sl_term] |
Unifies two terms by producing substitutions to act on each term respectively
|
biunify [Tags.Elt] |
Unifies two tags by finding suitable substitutions (represented as a set of tag pairs)
for each tag which makes them equal.
|
biunify [Ord_constraints.Elt] | |
biunify [Ord_constraints] | |
biunify_partial [Sl_heap] | |
biunify_partial [Sl_deqs] | |
biunify_partial [Sl_uf] | |
body [Sl_indrule] | |
both [Pair] |
Alias for
conj
|
build_proof [Soundcheck] | |
but_last [Blist] |
Return a list containing all elements apart from the last one.
|
C | |
cardinal [Hashset.S] | |
cartesian_hemi_square [Blist] |
Return a list of all pairs out of elements of a list, but without including
symmetric pairs.
|
cartesian_product [Blist] | |
check [Sigs.PROOF] |
Check soundness.
|
check_proof [Soundcheck] |
Validate, minimise, check soundness of proof/graph and memoise.
|
choice [Sigs.ABDRULE] | |
choice [Sigs.PROOFRULE] |
Apply a list of rules on current subgoal and return all applications.
|
choice [Sigs.SEQTACTICS] | |
choose [Blist] | choose [[1;2;3]; [4;5]] returns [[1;4];[1;5];[2;4];[2;5];[3;4];[3;5]] .
|
classical_biunify [Sl_heap] | |
classical_unify [Sl_heap_rho] |
Unify two heaps, by using
unify_partial for the pure (classical) part whilst
using unify for the spatial part.
|
classical_unify [Sl_heap] |
Unify two heaps, by using
unify_partial for the pure (classical) part whilst
using unify for the spatial part.
|
clear [Hashset.S] | |
close [Ord_constraints] | close cs generates the set of all constraints entailed by cs
|
closed_nodes [Sigs.PROOFRULE] | |
combine [Sl_heap_rho] | |
combine [Blist] |
Transform a pair of ts into a t of pairs:
combine [a1; ...; an] [b1; ...; bn] is
[(a1,b1); ...; (an,bn)] .
|
combine_axioms [Sigs.PROOFRULE] | |
combs [Blist] | combs n l returns all combinations of n elements from l .
|
compare [Tl_form_ltl.Form] | |
compare [Tl_form.Form] | |
compare [Utilsigs.BasicType] |
Standard comparator, return <0 if first less than second, 0 if equal, >0 if greater.
|
complete_tags [Tl_form_ltl.Form] | |
complete_tags [Tl_form.Form] | |
complete_tags [Sl_form] | complete_tags ts f returns the formula obtained from f by assigning
all untagged predicates a fresh existential tag, avoiding those in ts .
|
complete_tags [Sl_heap_rho] | complete_tags exist ts h returns the symbolic heap obtained from h
by assigning all untagged predicates a fresh existential tag avoiding
those in ts .
|
complete_tags [Sl_heap] | complete_tags exist ts h returns the symbolic heap obtained from h
by assigning all untagged predicates a fresh existential tag avoiding
those in ts .
|
compose [Tagpairs] | compose l r computes the relation representing the composition of l with r .
|
compose [Sigs.ABDRULE] | |
compose [Sigs.PROOFRULE] |
Apply the list of rules in the second argument in a pairwise fashion to
the premises generated by applying the first rule
|
compose [Sigs.SEQTACTICS] | |
compose_pairwise [Sigs.PROOFRULE] | |
compute_frame [Sl_form] | compute_frame f f' , computes the portion of f' left over (the 'frame')
from f and returns None when f is not subsumed by f' .
|
concat [Blist] |
Concatenate a t of ts.
|
conditional [Sigs.PROOFRULE] | |
conj [Fun] | |
conj [Pair] |
Compute the conjunction of a pair of booleans.
|
cons [Blist] |
Equivalent to
:: .
|
constructively_valued [Sl_indrule] | constructively_valued r returns true iff the body of r is
constructively valued (see Sl_heap ).
|
constructively_valued [Sl_heap] | constructively_valued h returns true if all variables in h are
c.valued.
|
copy [Hashset.S] | |
create [Hashset.S] | |
curry [Fun] | |
D | |
decons [Blist] |
Destruct a non-empty list.
|
del_deq [Sl_heap_rho] | |
del_deq [Sl_heap] | |
del_first [Utilsigs.OrderedContainer] |
Remove first element satisfying the given predicate.
|
del_first [Blist] |
Delete first element satisfying a given predicate.
|
del_ind [Sl_heap_rho] | |
del_ind [Sl_heap] | |
del_pto [Sl_heap_rho] | |
del_pto [Sl_heap] | |
dest [Sl_indrule] | |
dest [Sl_seq] |
If both LHS and RHS are symbolic heaps then return them else raise
Sl_form.Not_symheap .
|
dest [Sl_form_rho] |
Return the single disjunct, if there is exactly one, else raise
Not_symheap .
|
dest [Sl_form] |
Return the single disjunct, if there is exactly one, else raise
Not_symheap .
|
dest [Sl_heap_rho] | |
dest [Sl_heap] | |
dest [Option] | |
dest [Sigs.NODE] | dest n returns (sequent, description).
|
dest_af [Tl_form.Form] | |
dest_ag [Tl_form.Form] | |
dest_and [Tl_form_ltl.Form] | |
dest_and [Tl_form.Form] | |
dest_atom [Tl_form_ltl.Form] | |
dest_atom [Tl_form.Form] | |
dest_backlink [Sigs.NODE] | dest_backlink n destroys a back-link node n , otherwise raises Invalid_arg .
|
dest_box [Tl_form.Form] | |
dest_circle [Tl_form.Form] | |
dest_diamond [Tl_form.Form] | |
dest_ef [Tl_form.Form] | |
dest_eg [Tl_form.Form] | |
dest_f [Tl_form_ltl.Form] | |
dest_g [Tl_form_ltl.Form] | |
dest_inf [Sigs.NODE] | dest_inf n destroys an inference node n , otherwise raises Invalid_arg .
|
dest_lazily [Option] | |
dest_next [Tl_form_ltl.Form] | |
dest_or [Tl_form_ltl.Form] | |
dest_or [Tl_form.Form] | |
dest_singleton [Tagpairs] | dest_singleton tps returns Some(tp) if tp is the only element of tps , and None otherwise.
|
diff [Sl_heap_rho] | |
diff [Sl_heap] | |
diff [Sl_rho] | diff rho rho' returns the structure given by removing all variables in
rho' from rho
|
diff [Sl_uf] | diff eqs eqs' returns the structure given by removing all equalities in
eqs' from eqs
|
direct [Fun] | |
disequates [Sl_heap_rho] |
Does a symbolic heap entail the disequality of two terms?
|
disequates [Sl_heap] |
Does a symbolic heap entail the disequality of two terms?
|
disj [Sl_form_rho] |
Or two formulas (list-append).
|
disj [Sl_form] |
Or two formulas (list-append).
|
disj [Fun] | |
disj [Pair] |
Compute the disjunction of a pair of booleans.
|
disjoint [Utilsigs.OrderedContainer] |
Decide if there are no common elements.
|
drop [Blist] | drop n l returns the suffix of l after skipping n elements.
|
E | |
e_step [Tl_form.Form] | |
either [Pair] |
Alias for
disj
|
empty [Sl_form_rho] |
The formula
emp .
|
empty [Sl_form] |
The formula
emp .
|
empty [Sl_heap_rho] | |
empty [Sl_heap] | |
empty [Sl_rho] | |
empty [Sl_uf] | |
empty [VarManager.SubstSig] |
The empty substitution, which has no effect when applied.
|
empty [Blist] |
The empty list constant.
|
empty_state [Sl_unify.S] |
The unifier state consisting of the empty substitution and the empty set of
tag pairs
|
endomap [Utilsigs.OrderedMap] |
Convert a map to another, by enumerating bindings in key order,
converting them into new ones and adding them to a new map.
|
endomap [Utilsigs.OrderedContainer] |
Map a set of elements to another set of elements of the same type.
|
equal [Tl_form_ltl.Form] | |
equal [Tl_form.Form] | |
equal [Sl_heap_rho] |
Checks whether two symbolic heaps are equal.
|
equal [Sl_heap] |
Checks whether two symbolic heaps are equal.
|
equal [Utilsigs.BasicType] |
Standard equality predicate.
|
equal [Sigs.SEQUENT] |
"Syntactic" equality.
|
equal [Hashset.HashedType] |
The equality predicate used to compare elements.
|
equal [Blist] | equal eq l l' computes pointwise equality between l and l' assuming
eq computes equality between elements.
|
equal_upto_tags [Tl_form_ltl.Form] | |
equal_upto_tags [Tl_form.Form] | |
equal_upto_tags [Sl_seq] |
Like
equal but ignoring LHS tags as well as RHS ones.
|
equal_upto_tags [Sl_form_rho] |
Whilst
equal demands syntactic equality including tags, this version
ignores tag assignment.
|
equal_upto_tags [Sl_form] |
Whilst
equal demands syntactic equality including tags, this version
ignores tag assignment.
|
equal_upto_tags [Sl_heap_rho] |
Like
equal but ignoring tag assignment.
|
equal_upto_tags [Sl_heap] |
Like
equal but ignoring tag assignment.
|
equal_upto_tags [Sl_tpreds] |
Test whether the two arguments are the equal ignoring tags.
|
equal_upto_tags [Sl_tpred] |
Compare for equality two tagged predicates while ignoring tags.
|
equal_upto_tags [Sigs.SEQUENT] |
As
equal but ignoring tags.
|
equates [Sl_heap_rho] |
Does a symbolic heap entail the equality of two terms?
|
equates [Sl_heap] |
Does a symbolic heap entail the equality of two terms?
|
equates [Sl_rho] |
Does a stack struct holds a term with a val?
|
equates [Sl_uf] |
Does a UF struct make two terms equal?
|
existential_intro [Sl_unify.Unidirectional] | |
existential_split_check [Sl_unify.Unidirectional] | |
existentials_only [Sl_unify.Unidirectional] | |
exists [Hashset.S] | |
exists [Blist] | exists p [a1; ...; an] checks if at least one element of
the t satisfies the predicate p .
|
exists2 [Blist] |
Same as
List.exists , but for a two-argument predicate.
|
explode_deqs [Sl_heap] | |
extract_checkable_slformula [Tl_form_ltl.Form] | |
extract_checkable_slformula [Tl_form.Form] | |
extract_subproof [Sigs.PROOF] | extract_subproof idx prf returns prf rearranged such that idx is
the root node.
|
F | |
fail [Sigs.ABDRULE] | |
fail [Sigs.PROOFRULE] |
The rule that always fails.
|
fast_sort [Blist] |
Same as
List.sort or List.stable_sort , whichever is faster
on typical input.
|
filter [Hashset.S] | |
filter [Blist] | filter p l returns all the elements of the t l
that satisfy the predicate p .
|
filter_vars [Sl_term] |
Remove
nil from a set of terms.
|
find [Sl_rho] | |
find [Sl_uf] | |
find [Utilsigs.OrderedContainer] | find p set returns the first element of set
that satisfies the predicate p .
|
find [Sigs.PROOF] | |
find [Blist] | find p l returns the first element of the t l
that satisfies the predicate p .
|
find_all [Blist] | find_all is another name for List.filter .
|
find_index [Blist] | find_index pred l returns the position of the first x in l such that pred x = true or throws Not_found .
|
find_indexes [Blist] | find_indexes pred l returns the list of positions of all x in l such that pred x = true .
|
find_lval [Sl_heap_rho] |
Find pto whose address is provably equal to given term.
|
find_lval [Sl_heap] |
Find pto whose address is provably equal to given term.
|
find_map [Utilsigs.OrderedMap] |
Optimisation for finding and converting at the same time.
|
find_map [Utilsigs.OrderedContainer] |
Optimisation for finding and converting at the same time.
|
find_map [Blist] |
Optimisation for finding and converting at the same time.
|
find_opt [Utilsigs.OrderedContainer] | find_opt pred set returns Some x for the first x in set such
that pred x = true , or None .
|
find_opt [Blist] | find_opt pred l returns Some x for the first x in l such that pred x = true , or None .
|
first [Sigs.ABDRULE] | |
first [Sigs.PROOFRULE] |
Apply a sequence of rules iteratively through
compose .
|
first [Sigs.SEQTACTICS] | |
fixpoint [Sl_heap_rho] | |
fixpoint [Sl_heap] | |
fixpoint [Utilsigs.OrderedMap] | fixpoint val_equal f map computes the fixpoint of f using val_equal
to compare *values*.
|
fixpoint [Utilsigs.OrderedContainer] | |
flatten [Tagpairs] |
Produce a set of all the tags in the given set of tag pairs.
|
flatten [Option] | |
flatten [Blist] |
Same as
concat .
|
fold [Sl_indrule] | fold r h returns a list of pairs of substitutions over the formal parameters of
the rule r such that its body, when one of these substitutions is applied,
becomes a subformula of h ; and the result of removing that subformula from h .
|
fold [Sl_rho] | |
fold [Sl_uf] | |
fold [Option] | |
fold [Pair] |
Fold a function over the members of a pair.
|
fold [Hashset.S] | |
fold_left [Blist] | List.fold_left f a [b1; ...; bn] is
f (... (f (f a b1) b2) ...) bn .
|
fold_left2 [Blist] | List.fold_left2 f a [b1; ...; bn] [c1; ...; cn] is
f (... (f (f a b1 c1) b2 c2) ...) bn cn .
|
fold_right [Blist] | List.fold_right f [a1; ...; an] b is
f a1 (f a2 (... (f an b) ...)) .
|
fold_right2 [Blist] | List.fold_right2 f [a1; ...; an] [b1; ...; bn] c is
f a1 b1 (f a2 b2 (... (f an bn c) ...)) .
|
foldl [Blist] | |
foldr [Blist] | |
for_all [Sl_rho] | |
for_all [Sl_uf] | |
for_all [Hashset.S] | |
for_all [Blist] | for_all p [a1; ...; an] checks if all elements of the t
satisfy the predicate p .
|
for_all2 [Blist] |
Same as
List.for_all , but for a two-argument predicate.
|
formals [Sl_indrule] | |
fresh_evar [Sl_term] | fresh_evar s returns an existentially quantified variable that is
fresh in s .
|
fresh_evar [VarManager.I] | fresh_evar s returns an existential variable that is fresh for the set of variables s .
|
fresh_evars [Sl_term] | fresh_evars s n returns a list of existentially quantified variables
of length n all of which are fresh in s .
|
fresh_evars [VarManager.I] | fresh_evars s n returns n distinct existential variables that are all fresh for the set of variables s .
|
fresh_fvar [Sl_term] | fresh_fvar s returns a free variable that is fresh in s .
|
fresh_fvar [VarManager.I] | fresh_uvar s returns a free variable that is fresh for the set of variables s .
|
fresh_fvars [Sl_term] | fresh_fvars s n returns a list of free variables of length n
all of which are fresh in s .
|
fresh_fvars [VarManager.I] | fresh_uvars s n returns n distinct free variables that are all fresh for the set of variables s .
|
fresh_idx [Sigs.PROOF] | |
fresh_idxs [Sigs.PROOF] | |
freshen [Sl_indrule] |
Replace all variables in rule such that they are disjoint with the set
provided.
|
freshen_tags [Sl_heap_rho] | freshen_tags f g will rename all tags in g such that they are disjoint
from those of f .
|
freshen_tags [Sl_heap] | freshen_tags f g will rename all tags in g such that they are disjoint
from those of f .
|
freshen_tags [Sl_tpreds] |
Rename tags in second argument so that they are disjoint to those in the first.
|
G | |
generate [Ord_constraints] | generate avoid t ts returns a constraint set that constitutes an inductive
hypothesis corresponding to a case in the unfolding of a predicate tagged
with t that recursively depends on predicate instances tagged by labels
in ts ; any freshly generated labels are not contained in avoid .
|
get [Option] | |
get_ancestry [Sigs.PROOF] | |
get_seq [Sigs.PROOF] | |
get_seq [Sigs.NODE] |
Get sequent labelling the node.
|
get_succs [Sigs.NODE] |
Get the successor node indices of this node.
|
get_tracepairs [Sl_seq] |
Get the tracepairs between two sequents
|
get_tracepairs [Sl_form] | get_tracepairs f f' will return the valid and progressing trace pairs
(t, t') specified by the constraints of f' such that t occurs in f
|
H | |
has_untagged_preds [Sl_heap_rho] | |
has_untagged_preds [Sl_heap] | |
hash [Tl_form_ltl.Form] | |
hash [Tl_form.Form] | |
hash [Utilsigs.OrderedMap] |
Hash the map using the provided function for hashing *values*.
|
hash [Utilsigs.BasicType] |
Standard hash function.
|
hash [Hashset.HashedType] |
A hashing function on elements.
|
hd [Blist] |
Return the first element of the given t.
|
I | |
id [Fun] | |
identity [Sigs.PROOFRULE] | |
idents [Sl_heap_rho] |
Get multiset of predicate identifiers.
|
idents [Sl_heap] |
Get multiset of predicate identifiers.
|
idents [Sl_tpreds] |
Return multiset of identifiers present.
|
idfs [Sigs.PROVER] | |
inconsistent [Sl_form_rho] |
Do all disjuncts entail false in the sense of
Sl_heap_rho.inconsistent ?
|
inconsistent [Sl_form] |
Do all disjuncts entail false in the sense of
Sl_heap.inconsistent
or are the tag constraints inconsistent?
|
inconsistent [Sl_heap_rho] |
Trivially false if x=y * x!=y is provable for any x,y.
|
inconsistent [Sl_heap] |
Trivially false if heap contains t!=t for any term t, or if x=y * x!=y
is provable for any x,y.
|
inconsistent [Ord_constraints] | |
indexes [Blist] | indexes l returns the list of integer positions of elements in l .
|
intersperse [Blist] |
Insert given element between elements of given list.
|
is_af [Tl_form.Form] | |
is_ag [Tl_form.Form] | |
is_and [Tl_form_ltl.Form] | |
is_and [Tl_form.Form] | |
is_anonymous [VarManager.I] | is_unnamed v returns true if and only if v is anonymous
|
is_atom [Tl_form_ltl.Form] | |
is_atom [Tl_form.Form] | |
is_axiom [Sigs.NODE] | |
is_backlink [Sigs.NODE] | |
is_box [Tl_form.Form] | |
is_checkable [Tl_form_ltl.Form] | |
is_checkable [Tl_form.Form] | |
is_circle [Tl_form.Form] | |
is_closed [Sigs.PROOF] |
Are all nodes not open?
|
is_closed_at [Sigs.PROOF] | |
is_diamond [Tl_form.Form] | |
is_ef [Tl_form.Form] | |
is_eg [Tl_form.Form] | |
is_empty [Sl_heap_rho] | is_empty h tests whether h is equal to the empty heap.
|
is_empty [Sl_heap] | is_empty h tests whether h is equal to the empty heap.
|
is_empty [Sl_rho] | |
is_empty [Sl_uf] | |
is_empty [Hashset.S] | |
is_empty [Blist] |
Is the argument the empty list?
|
is_exist_var [Sl_term] |
Is the argument an existentially quantified variable?
|
is_exist_var [VarManager.I] | is_exist_var v returns true if and only if v is an existential variable.
|
is_f [Tl_form_ltl.Form] | |
is_final [Tl_form.Form] | |
is_free_var [Sl_term] |
Is the argument a free variable?
|
is_free_var [VarManager.I] | is_exist_var v returns true if and only if v is a free variable.
|
is_g [Tl_form_ltl.Form] | |
is_inf [Sigs.NODE] | |
is_next [Tl_form_ltl.Form] | |
is_nil [Sl_term] |
Is the argument
nil ? Equivalent to equal nil x .
|
is_none [Option] | |
is_open [Sigs.NODE] | |
is_or [Tl_form_ltl.Form] | |
is_or [Tl_form.Form] | |
is_slformula [Tl_form_ltl.Form] | |
is_slformula [Tl_form.Form] | |
is_some [Option] | |
is_substitution [Sl_unify.Unidirectional] | |
is_symheap [Sl_form_rho] |
Returns true iff the formula has a single disjunct only
|
is_symheap [Sl_form] |
Returns true iff the formula has a single disjunct only
|
is_tagged [Sl_tpred] | |
is_var [Sl_term] | is_nil x is equivalent to not (equal nil x) .
|
iter [Option] | |
iter [Fun] | |
iter [Hashset.S] | |
iter [Blist] | List.iter f [a1; ...; an] applies function f in turn to
a1; ...; an .
|
iter2 [Blist] | List.iter2 f [a1; ...; an] [b1; ...; bn] calls in turn
f a1 b1; ...; f an bn .
|
iteri [Blist] |
Same as
List.iter , but the function is applied to the index of
the element as first argument (counting from 0), and the element
itself as second argument.
|
L | |
last_search_depth [Sigs.PROVER] | |
left [Pair] |
Pair destructor.
|
left_union [Hashset.S] | |
length [Blist] |
Return the length (number of elements) of the given t.
|
lift [Sigs.ABDRULE] | |
list_conj [Fun] | |
list_disj [Fun] | |
list_get [Option] | |
lru_cache [Lru.Make] | lru_cache f n memoises the non-recursive function f , using an LRU cache
(implemented as a hashtable) of up to n entries.
|
lru_cache_rec [Lru.Make] | lru_cache f n memoises the recursive function f , using an LRU cache
(implemented as a hashtable) of up to n entries.
|
M | |
map [Option] | |
map [Pair] |
Apply a function to both members individually and put results in a new pair.
|
map [Blist] | List.map f [a1; ...; an] applies function f to a1, ..., an ,
and builds the t [f a1; ...; f an]
with the results returned by f .
|
map2 [Blist] | List.map2 f [a1; ...; an] [b1; ...; bn] is
[f a1 b1; ...; f an bn] .
|
map_left [Pair] |
Apply a function to the left-hand component only
|
map_right [Pair] |
Apply a function to the right-hand component only
|
map_to [Utilsigs.OrderedContainer] | map_to add empty f set converts every element of set using f ,
and then folds over the new collection of elements using as starting
value empty and folding operation add .
|
map_to [Hashset.S] | |
map_to [Blist] | |
map_to_list [Utilsigs.OrderedContainer] | map_to_list f set applies f to every element and constructs a list
of results.
|
mapi [Blist] |
Same as
List.map , but the function is applied to the index of
the element as first argument (counting from 0), and the element
itself as second argument.
|
max_depth [Sl_abduce] |
Returns the maximum depth for the underlying proof search
|
melt_proof [Sigs.ABDUCER] | |
melt_proof [Sigs.PROVER] | |
mem [Hashset.S] | |
mem [Blist] | mem a l is true if and only if a is equal
to an element of l .
|
mem_assoc [Blist] |
Same as
List.assoc , but simply return true if a binding exists,
and false if no bindings exist for the given key.
|
mem_assq [Blist] |
Same as
List.mem_assoc , but uses physical equality instead of
structural equality to compare keys.
|
memory_consuming [Sl_indrule] | memory_consuming r returns true the body of r is memory consuming
(see Sl_heap ).
|
memory_consuming [Sl_heap] | memory_consuming h returns true iff whenever there is an inductive
predicate in h there is also a points-to.
|
memq [Blist] |
Same as
List.mem , but uses physical equality instead of structural
equality to compare t elements.
|
merge [Blist] |
Merge two ts:
Assuming that
l1 and l2 are sorted according to the
comparison function cmp , merge cmp l1 l2 will return a
sorted t containting all the elements of l1 and l2 .
|
mk [Sl_indrule] | |
mk [Sl_heap_rho] | |
mk [Sl_heap] | |
mk [VarManager.I] | mk_var n exist returns a variable with name n ; if exist is true then
the returned variable will be existential, otherwise it will be free.
|
mk [VarManager] | mk seed anon_str classify creates a new variable manager module where:
seed specifies a cyclic permutation of the alphabet, which is used
internally to create new variable names;
anon_str specifies how to represent "anonymous" variables as a string;
classify varname returns a value of type varname_class classifying varname .
|
mk [Tagpairs] | mk tags computes the identity relation over the set tags .
|
mk [Option] | |
mk [Pair] |
Pair constructor.
|
mk [Sigs.PROOF] |
Constructor.
|
mk_abdbackrule [Sigs.ABDRULE] | |
mk_abdgenrule [Sigs.ABDRULE] | |
mk_abdinfrule [Sigs.ABDRULE] | |
mk_abs_node [Soundcheck] |
Constructor for nodes.
|
mk_af [Tl_form.Form] | |
mk_ag [Tl_form.Form] | |
mk_and [Tl_form_ltl.Form] | |
mk_and [Tl_form.Form] | |
mk_assert_check [Sl_unify.S] |
Takes a state check and wraps it in an assert
|
mk_atom [Tl_form_ltl.Form] | |
mk_atom [Tl_form.Form] | |
mk_axiom [Sigs.PROOFRULE] |
Axioms are modeled as functions that return
Some string when the
input sequent is an instance of an axiom described by string , else
None .
|
mk_axiom [Sigs.NODE] | mk_axiom seq descr creates an axiom node labelled by
sequent seq and description descr .
|
mk_backlink [Sigs.NODE] | mk_backlink seq descr target vtts creates a back-link node labelled by
sequent seq , description descr , target index target and set of
valid tag transitions (as pairs) vtts .
|
mk_backrule [Sigs.PROOFRULE] |
Backlink rules take: a boolean
eager , a selection function s , a matching function m
The selection function is applied on the current subgoal and proof, and
a list of goal indices is returned that represents possible back-link
targets. This allows flexibility e.g., in changing from ancestral-only
back-links to general ones.
Next, m is applied to every pair consisting of the current subgoal
and a goal returned from the selection function.
|
mk_box [Tl_form.Form] | |
mk_circle [Tl_form.Form] | |
mk_deq [Sl_heap_rho] | |
mk_deq [Sl_heap] | |
mk_diamond [Tl_form.Form] | |
mk_ef [Tl_form.Form] | |
mk_eg [Tl_form.Form] | |
mk_eq [Sl_heap_rho] | |
mk_eq [Sl_heap] | |
mk_ex_subst [VarManager.SubstSig] | mk_ex_subst avoid vs produces a substitution of pairwise distinct existentially
quantified variables (fresh for all the variables in avoid ) for the variables in vs .
|
mk_ex_subst [Tagpairs] | mk_ex_subst avoid ts produces a set of tag pairs representing a substitution of pairwise distinct
existentially quantified tags (fresh for all the tags in avoid ) for the tags in ts .
|
mk_f [Tl_form_ltl.Form] | |
mk_final [Tl_form.Form] | |
mk_free_subst [VarManager.SubstSig] | mk_free_subst avoid vs produces a substitution of pairwise distinct
free variables (fresh for all the variables in avoid ) for the variables in vs .
|
mk_free_subst [Tagpairs] | mk_free_subst avoid ts produces a set of tag pairs representing a substitution of pairwise distinct
free tags (fresh for all the tags in avoid ) for the tags in ts .
|
mk_g [Tl_form_ltl.Form] | |
mk_ind [Sl_heap_rho] | |
mk_ind [Sl_heap] | |
mk_inf [Sigs.NODE] | mk_inf seq descr subgoals back creates an inference node labelled by
sequent seq , description descr , a list of triples consisting of
subgoal index, valid tag transitions and progressing tag transitions
subgoals .
|
mk_infrule [Sigs.PROOFRULE] |
Rules are functions that break down a sequent to a choice of applications
where each application is a list of premises, including tag information,
and a description.
|
mk_lazily [Option] | |
mk_next [Tl_form_ltl.Form] | |
mk_open [Sigs.NODE] | mk_open seq creates an open Proof.t node labelled by seq .
|
mk_or [Tl_form_ltl.Form] | |
mk_or [Tl_form.Form] | |
mk_pto [Sl_heap_rho] | |
mk_pto [Sl_heap] | |
mk_rho [Sl_heap_rho] | |
mk_unifier [Unification.MakeUnifier] | |
mk_unifier [Utilsigs.OrderedContainer] | mk_unifier total linear elt_unifier produces a unifier u for a set of elements
using the unifier elt_unifier for a single element.
|
mk_update_check [Ord_constraints] | |
mk_verifier [Sl_unify.S] |
Takes a state check function and converts it into a continuation which
returns None if the check fails
|
modulo_entl [Sl_unify.Unidirectional] | |
N | |
neg [Fun] | |
nil [Sl_term] |
The
nil constant.
|
norm [Sl_seq] |
Replace all terms with their UF representatives in the respective formulas.`
|
norm [Sl_form_rho] |
Replace all terms with their UF representatives in the respective heaps.
|
norm [Sl_form] |
Replace all terms with their UF representatives in the respective heaps.
|
norm [Sl_heap_rho] |
Replace all terms with their UF representative (the UF in the heap).
|
norm [Sl_heap] |
Replace all terms with their UF representative (the UF in the heap).
|
norm [Sl_tpreds] |
Replace all terms with their UF representative.
|
norm [Sl_tpred] |
Replace all terms with their UF representative.
|
norm [Sl_pred] |
Replace all terms with their UF representative.
|
norm [Sl_ptos] |
Replace all terms with their UF representative.
|
norm [Sl_pto] |
Replace all terms with their UF representative.
|
norm [Sl_deqs] |
Rename all variables involved by their representative in the UF structure
and re-order pair members if necessary.
|
nth [Blist] |
Return the
n -th element of the given t.
|
num_backlinks [Sigs.PROOF] | |
O | |
of_list [Sl_rho] | |
of_list [Sl_uf] | Sl_term.compare .
|
of_list [VarManager.SubstSig] |
Make a substitution from a list of bindings
|
of_list [Utilsigs.OrderedMap] |
Create a map out of a list of pairs of (keys, values).
|
of_list [Utilsigs.OrderedContainer] |
Convert a list of elements to a container.
|
of_list [Hashset.S] | |
of_list [Blist] |
Construct a
t list out of a primitive list.
|
of_string [Tl_form_ltl.Form] | |
of_string [Tl_form.Form] | |
of_string [Sl_seq] | |
of_string [Sl_form_rho] | |
of_string [Sl_form] | |
of_string [Sl_heap_rho] | |
of_string [Sl_heap] | |
of_string [Sl_tpred] | |
of_string [Sl_pred] | |
of_string [Sl_term] |
Parse a term from a string.
|
of_string [Ord_constraints] | |
opt_map_to [Utilsigs.OrderedContainer] | opt_map_to add empty f set converts every element of set using f ,
and then folds over the elements of the new collection which are Some
using as starting value empty and folding operation add .
|
opt_map_to [Blist] | opt_map_to oadd oempty f xs is equivalent to map_to (Option.dest Fun.id oadd) oempty f x
|
order [Sl_tpair] |
Return a permutation of the input that obeys the ordering
Sl_term.compare .
|
outermost_tag [Tl_form_ltl.Form] | |
outermost_tag [Tl_form.Form] | |
P | |
pairs [Blist] |
Return a list of pairs of consecutive elements.
|
parse [Tl_form_ltl.Form] | |
parse [Tl_form.Form] | |
parse [Sl_indrule] | |
parse [Sl_seq] | |
parse [Sl_form_rho] | |
parse [Sl_form] | |
parse [Sl_heap_rho] | |
parse [Sl_heap] | |
parse [Sl_tpred] | |
parse [Sl_pred] | |
parse [Sl_pto] | |
parse [Sl_deqs] | |
parse [Sl_rho] | |
parse [Sl_uf] | |
parse [Sl_term] |
Parse a term.
|
parse [Tags.Elt] | |
parse [Ord_constraints] | |
partition [VarManager.SubstSig] | partition theta will partition theta into (theta_1 , theta_2 )
such that theta_1 contains all and only the mappings in theta from
a free variable to either an anonymous variable or another free variable;
that is theta_1 is the part of theta which is a proper
(proof-theoretic) substitution.
|
partition [Blist] | partition p l returns a pair of ts (l1, l2) , where
l1 is the t of all the elements of l that
satisfy the predicate p , and l2 is the t of all the
elements of l that do not satisfy p .
|
partition_subst [Tagpairs] |
Partition the set of tag pairs into those pairs containing only "free" tags, and all the rest
|
pp [Tl_form_ltl.Form] | |
pp [Tl_form.Form] | |
pp [VarManager.SubstSig] |
Pretty printer.
|
pp [Option] | |
pp [Utilsigs.OrderedMap] | pp pp_val fmt map pretty prints map using pp_val to pretty-print
the *values* of map .
|
pp [Utilsigs.BasicType] |
Pretty printer.
|
pp [Soundcheck] |
Pretty print abstract proof.
|
pp [Sigs.PROOF] | |
pp [Sigs.NODE] | |
pp [Sigs.DEFS] | |
pp [Sigs.SEQUENT] | |
pp [Blist] | pp sep e fmt l pretty prints the list l .
|
pred [Option] | pred p x returns Some x if p x else None .
|
pred_dest [Option] | |
predsym [Sl_indrule] | |
predsym [Sl_tpred] | |
predsym [Sl_pred] | |
print_proof_stats [Sigs.ABDUCER] | |
print_proof_stats [Sigs.PROVER] | |
prog_pairs [Ord_constraints] | prog_pairs cs returns all of the tag pairs (a , b ) such that a <b
is entailed by some constraint in cs
|
proj_pure [Sl_heap_rho] | |
proj_pure [Sl_heap] | |
proj_sp [Sl_heap_rho] | |
proj_sp [Sl_heap] | |
project [Sl_heap_rho] |
See CSL-LICS paper for explanation.
|
project [Sl_heap] |
See CSL-LICS paper for explanation.
|
projectl [Tagpairs] | projectl tps computes the set of tags appearing in the left of pairs in tps .
|
projectr [Tagpairs] | projectr tps computes the set of tags appearing in the right of pairs in tps .
|
R | |
range [Blist] | range n l returns a list of increasing integers li such that hd li = n
and length li = length l .
|
realize [Sl_unify.S] | |
record_type [Sl_pto] | |
reflect [Tagpairs] |
Reverse the relation.
|
relabel [Sigs.SEQTACTICS] | |
remove [Sl_uf] |
FIXME why is this here?
|
remove [Hashset.S] | |
remove_assoc [Blist] | remove_assoc a l returns the t of
pairs l without the first pair with key a , if any.
|
remove_assq [Blist] |
Same as
List.remove_assoc , but uses physical equality instead
of structural equality to compare keys.
|
remove_dup_substs [Sl_unify.Unidirectional] | remove_dup_substs states will remove any states in states where the
universal parts (i.e.
|
remove_nth [Blist] | |
remove_schema [Ord_constraints] | remove_schema cs used will remove a (nonempty) subset cs' of cs
containing tags { t_1, ..., t_n } where at least one t_i does not occur in
used such that cs' does not affect the support of cs in the sense that
|
repeat [Sigs.SEQTACTICS] | |
repeat [Blist] | repeat e n constructs a list of length n where all elements are physically
equal to e .
|
replace_nth [Blist] | |
rev [Blist] |
List reversal.
|
rev_append [Blist] | List.rev_append l1 l2 reverses l1 and concatenates it to l2 .
|
rev_filter [Blist] | |
rev_map [Blist] | List.rev_map f l gives the same result as
List.rev ( List.map f l) , but is tail-recursive and
more efficient.
|
rev_map2 [Blist] | List.rev_map2 f l1 l2 gives the same result as
List.rev ( List.map2 f l1 l2) , but is tail-recursive and
more efficient.
|
right [Pair] |
Pair destructor.
|
S | |
satisfiable [Ord_constraints.Elt] | |
sequence [Sigs.PROOFRULE] | |
set_defs [Sl_abduce] |
Specify the set of inductive definitions available for the proof search
|
set_depth [Sl_abduce] |
Set the maximum depth for the underlying proof search
|
singleton [VarManager.SubstSig] |
Constructor for a substitution mapping one variable to a term.
|
singleton [Blist] |
Constructs a list with exactly one element, the argument provided.
|
size [Sigs.PROOF] | |
some [Option] | |
sort [Blist] |
Sort a t in increasing order according to a comparison
function.
|
sort_uniq [Blist] |
Same as
List.sort , but also remove duplicates.
|
split [Blist] |
Transform a t of pairs into a pair of ts:
split [(a1,b1); ...; (an,bn)] is ([a1; ...; an], [b1; ...; bn]) .
|
stable_sort [Blist] |
Same as
List.sort , but the sorting algorithm is guaranteed to
be stable (i.e.
|
star [Sl_form_rho] |
Star two formulas by distributing
* through \/ .
|
star [Sl_form] |
Star two formulas by distributing
* through \/ .
|
star [Sl_heap_rho] | |
star [Sl_heap] | |
step [Tl_form_ltl.Form] | |
strip [VarManager.SubstSig] |
Removes all identity bindings from the substitution map
|
strip [Tagpairs] | strip tps removes all elements that are pairs of equal tags.
|
strip_tags [Sl_tpreds] |
Remove tags.
|
submap [Utilsigs.OrderedMap] |
Decide if a map is included in another, using the provided value equality
predicate.
|
subsets [Utilsigs.OrderedContainer] |
Generate all subsets of a set.
|
subst [Sl_indrule] | |
subst [Sl_seq] | |
subst [Sl_form_rho] | |
subst [Sl_form] | |
subst [Sl_heap_rho] | |
subst [Sl_heap] | |
subst [Sl_tpreds] | |
subst [Sl_tpred] | |
subst [Sl_pred] | |
subst [Sl_ptos] | |
subst [Sl_pto] | |
subst [Sl_deqs] | |
subst [Sl_rho] | |
subst [Sl_uf] | |
subst [Sl_tpair] | |
subst [Sl_term.FList] |
Applies a substitution to the list
|
subst_existentials [Sl_form_rho] |
Like
Sl_heap_rho.subst_existentials applied to all disjuncts.
|
subst_existentials [Sl_form] |
Like
Sl_heap.subst_existentials applied to all disjuncts.
|
subst_existentials [Sl_heap_rho] |
For all equalities x'=t, remove the equality and do the substitution
t/x'
|
subst_existentials [Sl_heap] |
For all equalities x'=t, remove the equality and do the substitution
t/x'
|
subst_subsumed [Sl_uf] |
Compute whether a substitution could be obtained by rewriting under
equalities in first argument.
|
subst_tag [Sl_tpred] |
Substitute the tag according to the function represented by the set of
tag pairs provided.
|
subst_tags [Tl_form_ltl.Form] | |
subst_tags [Tl_form.Form] | |
subst_tags [Sl_seq] |
Substitute tags of the LHS.
|
subst_tags [Sl_form_rho] |
Like
Sl_heap_rho.subst_tags applied to all disjuncts.
|
subst_tags [Sl_form] |
Like
Sl_heap.subst_tags applied to all disjuncts.
|
subst_tags [Sl_heap_rho] |
Substitute tags according to the function represented by the set of
tag pairs provided.
|
subst_tags [Sl_heap] |
Substitute tags according to the function represented by the set of
tag pairs provided.
|
subst_tags [Sl_tpreds] |
Substitute tags according to the function represented by the set of
tag pairs provided.
|
subst_tags [Ord_constraints.Elt] | |
subst_tags [Ord_constraints] | |
subsumed [Sl_seq] | subsumed (l,r) (l',r') is true iff both Sl_form.subsumed l' l and
Sl_form.subsumed r r' are true.
|
subsumed [Sl_form_rho] | subsumed a b : is it the case that for any disjunct a' of a there a
disjunct b' of b such a' is subsumed by b' ?
If the optional argument ~total=true is set to false then relax the
check on the spatial part so that it is included rather than equal to that
of b .
|
subsumed [Sl_form] | subsumed a b : is it the case that
i) the constraints cs of a are subsumed by the constraints cs' of b
in the sense that Ord_constraints.subsumes cs' cs returns true
ii) for any disjunct a' of a there is a disjunct b' of b such that
a' is subsumed by b' ?
If the optional argument ~total=true is set to false then relax the
check on the spatial part so that it is included rather than equal to that
of b .
|
subsumed [Sl_heap_rho] | subsumed h h' is true iff h can be rewritten using the equalities
in h' such that its spatial part becomes equal to that of h'
and the pure part becomes a subset of that of h' .
|
subsumed [Sl_heap] | subsumed h h' is true iff h can be rewritten using the equalities
in h' such that its spatial part becomes equal to that of h'
and the pure part becomes a subset of that of h' .
|
subsumed [Sl_tpreds] |
Test whether the two arguments are the same modulo the provided equalities.
|
subsumed [Sl_ptos] | subsumed eqs ptos ptos' is true iff ptos can be rewritten using the
equalities eqs such that it becomes equal to ptos' .
|
subsumed [Sl_deqs] | subsumed eqs d d' is true iff d can be rewritten using the equalities
in eqs such that it becomes a subset of d' .
|
subsumed [Sl_rho] | subsumed rho rho' is true iff uf' |- uf using the normal equality rules.
|
subsumed [Sl_uf] | subsumed uf uf' is true iff uf' |- uf using the normal equality rules.
|
subsumed_upto_constraints [Sl_form] |
As above but does not check subsumption of constraints
|
subsumed_upto_tags [Sl_seq] |
Like
subsumed but ignoring all tags.
|
subsumed_upto_tags [Sl_form_rho] |
As above but ignoring tags.
|
subsumed_upto_tags [Sl_form] |
As above but ignoring tags.
|
subsumed_upto_tags [Sl_heap_rho] |
Like
subsumed but ignoring tag assignment.
|
subsumed_upto_tags [Sl_heap] |
Like
subsumed but ignoring tag assignment.
|
subsumed_upto_tags [Sl_tpreds] |
Test whether the two arguments are the same modulo the provided equalities.
|
subsumes [Ord_constraints] | subsumes cs cs' checks whether every constraint in cs' also occurs in
cs , ignoring any constraints in cs' which are universally valid
(e.g.
|
swap [Fun] | |
swap [Pair] |
Swap around the members of a pair.
|
syntactically_equal_nodes [Sigs.PROOFRULE] | |
T | |
tag [Sl_tpred] | |
tag_check [Sl_unify.Unidirectional] | |
tag_is_exist [Sl_tpred] | |
tag_is_free [Sl_tpred] | |
tag_pairs [Sl_seq] |
Tag pairs constituting the identity relation on the tags in the LHS.
|
tag_pairs [Sl_form_rho] |
The proviso on tags applies here too.
|
tag_pairs [Sl_form] |
The proviso on tags applies here too.
|
tag_pairs [Sl_heap_rho] |
Return a set of pairs representing the identity function over the tags
of the formula.
|
tag_pairs [Sl_heap] |
Return a set of pairs representing the identity function over the tags
of the formula.
|
tag_pairs [Ord_constraints] |
Return a set of pairs representing the identity function over the tags
in the constraint set, to be used as preserving tag pairs.
|
tags [Tl_form_ltl.Form] | |
tags [Tl_form.Form] | |
tags [Sl_seq] |
Tags occurring in this sequent on both the LHS and RHS
|
tags [Sl_form_rho] |
NB no attempt is made to ensure that tags are disjoint between disjuncts.
|
tags [Sl_form] |
NB no attempt is made to ensure that tags are disjoint between disjuncts.
|
tags [Sl_heap_rho] |
Return set of tags assigned to predicates in heap.
|
tags [Sl_heap] |
Return set of tags assigned to predicates in heap.
|
tags [Sl_tpreds] | |
tags [Sl_tpred] | |
tags [Ord_constraints.Elt] | |
tags [Ord_constraints] | |
tags [Sigs.SEQUENT] |
Returns set of tags in sequent.
|
take [Blist] | take n l returns a list of the first n elements of l .
|
terms [Sl_form_rho] | |
terms [Sl_form] | |
terms [Sl_heap_rho] | |
terms [Sl_heap] | |
terms [Sl_tpreds] | |
terms [Sl_tpred] | |
terms [Sl_pred] | |
terms [Sl_ptos] | |
terms [Sl_pto] | |
terms [Sl_deqs] | |
terms [Sl_rho] | |
terms [Sl_uf] | |
terms [Sl_tpair.FList] |
Unify all pairs of the 1st argument with a part of the 2nd.
|
terms [Sl_term.FList] |
Convenience function converting the list to a set.
|
tl [Blist] |
Return the given t without its first element.
|
to_abstract_node [Sigs.NODE] |
Convert Proof.t node to abstract node as in
Soundcheck .
|
to_int [VarManager.S.Var] |
Returns an integer representation
|
to_int [Tags.Elt] | |
to_ints [VarManager.S] |
Convenience method to return a set of integer representatives of a set of variables.
|
to_ints [Tags] | |
to_list [Utilsigs.OrderedMap] |
Create a list of pairs (keys, values) out of a map.
|
to_list [Utilsigs.OrderedContainer] |
Convert to a list of unique, sorted elements.
|
to_list [Sigs.PROOF] | |
to_list [Hashset.S] | |
to_list [Blist] |
Construct a primitive list out of a
t list.
|
to_melt [Tl_form_ltl.Form] | |
to_melt [Tl_form.Form] | |
to_melt [Sl_seq] | |
to_melt [Sl_form_rho] | |
to_melt [Sl_form] | |
to_melt [Sl_heap_rho] | |
to_melt [Sl_heap] | |
to_melt [Sl_tpreds] | |
to_melt [Sl_tpred] | |
to_melt [Sl_ptos] | |
to_melt [Sl_pto] | |
to_melt [Sl_deqs] | |
to_melt [Sl_rho] | |
to_melt [Sl_uf] | |
to_melt [Sl_term] |
Convert term to LaTeX.
|
to_melt [Tags.Elt] | |
to_melt [Ord_constraints] | |
to_melt [Sigs.PROOF] | |
to_melt [Sigs.NODE] |
Convert to Latex.
|
to_melt [Sigs.DEFS] | |
to_melt [Sigs.SEQUENT] | |
to_melt_sep [Sl_tpair] | |
to_slformula [Tl_form_ltl.Form] | |
to_slformula [Tl_form.Form] | |
to_string [Tl_form_ltl.Form] | |
to_string [Tl_form.Form] | |
to_string [Sl_tpred] | |
to_string [VarManager.SubstSig] |
Convert a substitution to a string
|
to_string [Utilsigs.OrderedMap] | to_string val_to_string map converts to a string, using val_to_string
to convert *values* to strings.
|
to_string [Utilsigs.BasicType] |
Convert to string.
|
to_string [Ord_constraints] | |
to_string [Sigs.PROOF] | |
to_string [Sigs.DEFS] | |
to_string [Sigs.SEQUENT] | |
to_string [Hashset.HashedType] | |
to_string [Hashset.S] | |
to_string [Blist] | to_string sep e l converts the list l to a string.
|
to_string_list [Sl_tpreds] | |
to_string_list [Sl_ptos] | |
to_string_list [Sl_deqs] | |
to_string_list [Sl_rho] | |
to_string_list [Sl_uf] | |
to_string_list [Ord_constraints] | |
to_string_sep [Sl_tpair] | |
to_string_sep [Sl_term.FList] | to_string_sep sep ts converts ts to a string with each element separated by sep .
|
transform [Unification] | |
trivial_continuation [Unification] | |
trm_check [Sl_unify.Unidirectional] |
When used as state update check in a call to
Sl_heap.unify for unifying
heaps h and h' , ensures that the generated substitution, when applied
to h , produces a formula which is subsumed by h'
|
U | |
uncurry [Fun] | |
unfold [Sl_indrule] | unfold (vs, ts) p r returns the body of the inductive rule r with:
the formal parameters replaced by the arguments of p ;
the remaining variables freshened, avoiding those in vs ; and
the predicates assigned fresh existential tags avoiding those in ts ,
unless the optional argument gen_tags=true is set to false.
|
unfold_af [Tl_form.Form] | |
unfold_ag [Tl_form.Form] | |
unfold_and [Tl_form_ltl.Form] | |
unfold_and [Tl_form.Form] | |
unfold_ef [Tl_form.Form] | |
unfold_eg [Tl_form.Form] | |
unfold_f [Tl_form_ltl.Form] | |
unfold_g [Tl_form_ltl.Form] | |
unfold_or [Tl_form_ltl.Form] | |
unfold_or [Tl_form.Form] | |
unify [Sl_tpreds] |
Compute substitution that makes the two multisets equal up to tags.
|
unify [Sl_tpred] |
Unify two tagged predicates.
|
unify [Sl_pred] |
Compute substitution that unifies two predicates.
|
unify [Sl_ptos] |
Compute substitution that would make the two multisets equal.
|
unify [Sl_pto] |
Compute substitution that unifies two points-tos.
|
unify [Sl_tpair] |
Unify two pairs of terms, ignoring the pairs' internal ordering of members.
|
unify [Sl_term.FList] |
Unifies two lists of terms by producing a substitution to act on the first list
|
unify [Sl_term] |
Unifies two terms by producing a substitution to act on the first term
|
unify [Tags.Elt] |
Unifies two tags by finding a suitable substitution (represented as a set of tag pairs)
for the first tag which makes it equal to the second.
|
unify [Ord_constraints.Elt] | |
unify [Ord_constraints] | unify check cs cs' cont init_state calculates a (minimal) extension theta
of init_state such that subsumes cs' (subst_tags theta cs) returns
true , then passes it to cont and returns the resulting (optional) value.
|
unify_partial [Sl_heap_rho] |
Unify two heaps such that the first becomes a subformula of the second.
|
unify_partial [Sl_heap] |
Unify two heaps such that the first becomes a subformula of the second.
|
unify_partial [Sl_deqs] | unify_partial d d' Unification.trivial_continuation Sl_unify.empty_state
computes a substitution theta such that d[theta] is a subset of d' .
|
unify_partial [Sl_uf] | unify_partial Option.some (Sl_term.empty_subst, ()) u u' computes a
substitution theta such that u' |- u[theta] .
|
unify_tag [Sl_unify.S] | |
unify_tag_constraints [Sl_unify.Bidirectional] | Ord_constraints.biunify lifted to the SL unifier type
|
unify_tag_constraints [Sl_unify.Unidirectional] | Ord_constraints.unify lifted to the SL unifier type
|
unify_trm [Sl_unify.S] | |
unify_trm_list [Sl_unify.S] | |
union [Sl_rho] | |
union [Sl_uf] | |
union [Utilsigs.OrderedMap] |
Union two maps.
|
union_of_list [Utilsigs.OrderedContainer] |
Union a list of sets.
|
uniq [Blist] | uniq eq l returns a list containing no duplicates w.r.t.
|
univ [Sl_heap_rho] |
Replace all existential variables with fresh universal variables.
|
univ [Sl_heap] |
Replace all existential variables with fresh universal variables.
|
unzip3 [Blist] | |
updchk_inj_left [Sl_unify.Bidirectional] | |
updchk_inj_right [Sl_unify.Bidirectional] | |
upper_bounds [Ord_constraints] | upper_bounds ?strict t cs returns the set of tags b such that cs
contains a constraint of the form t <= b .
|
V | |
valid [Ord_constraints.Elt] | |
vars [Tl_form_ltl.Form] | |
vars [Tl_form.Form] | |
vars [Sl_indrule] | |
vars [Sl_seq] | |
vars [Sl_form_rho] | |
vars [Sl_form] | |
vars [Sl_heap_rho] | |
vars [Sl_heap] | |
vars [Sl_tpreds] | |
vars [Sl_tpred] | |
vars [Sl_pred] | |
vars [Sl_ptos] | |
vars [Sl_pto] | |
vars [Sl_deqs] | |
vars [Sl_rho] | |
vars [Sl_uf] | |
vars [Sl_term.FList] |
Returns the set of all elements of the list that are not nil
|
verify_schemas [Ord_constraints] | verify_schemas ts cs will return true when cs consists entirely of
tautological schemas.
|
W | |
weave [Utilsigs.OrderedContainer] |
Weave combinator - used in the SL Model Checker.
|
weave [Blist] |
Weave combinator - used in the SL Model Checker.
|
with_constraints [Sl_form] | with_constraints f cs returns the formula that results by replacing f 's
tag constraints with cs
|
with_deqs [Sl_heap_rho] | |
with_deqs [Sl_heap] | |
with_eqs [Sl_heap_rho] | |
with_eqs [Sl_heap] | |
with_heaps [Sl_form] | with_heaps hs cs returns the formula that results by replacing f 's
disjunction of symbolic heaps with hs
|
with_inds [Sl_heap_rho] | |
with_inds [Sl_heap] | |
with_ptos [Sl_heap_rho] | |
with_ptos [Sl_heap] | |
with_rho [Sl_heap_rho] | |
Z | |
zip3 [Blist] |