Module V
module V: sig end
remove the inverse of x
.
type t = {
}
val eq : t -> t -> bool
val apply : t -> Term.Map.key -> Term.t * Fact.justification option
val find : t -> Term.Map.key -> Term.Map.key * 'a option
val equality : t -> Term.Map.key -> Fact.equal
val inv : t -> Term.Map.key -> Term.Set.t
val removable : t -> Term.Set.t
val union : Term.Set.elt -> Term.Map.key -> Fact.justification option -> t -> t
val restrict : Term.Map.key -> t -> t
val gc : (Term.Set.elt -> bool) -> t -> t
Parameters: |
f |
: |
Term.Set.elt -> bool
|
s |
: |
t
|
|
val is_equal : t -> Term.Map.key -> Term.Map.key -> bool
Variable equality modulo s
.
Parameters: |
s |
: |
t
|
x |
: |
Term.Map.key
|
y |
: |
Term.Map.key
|
|
val empty : t
The empty context.
val is_empty : t -> bool
val fold : t -> (Term.Set.elt -> 'a -> 'a) -> Term.Map.key -> 'a -> 'a
Starting from the canonical representative x' = find s x
, the
function f
is applied to each y
in inv s x'
and the results are
accumulated.
Parameters: |
s |
: |
t
|
f |
: |
Term.Set.elt -> 'a -> 'a
|
x |
: |
Term.Map.key
|
|
val merge : Fact.equal -> t -> Term.Set.t * t
Adding a binding a |-> b
to a context s
.
val ext : t -> Term.Map.key -> Term.Set.t
Extension of the equivalence class for x
.
Iteration.
val iter : t -> (Term.Set.elt -> 'a) -> Term.Map.key -> unit
Parameters: |
s |
: |
t
|
f |
: |
Term.Set.elt -> 'a
|
x |
: |
Term.Map.key
|
|
val exists : t -> (Term.Set.elt -> bool) -> Term.Map.key -> bool
Parameters: |
s |
: |
t
|
p |
: |
Term.Set.elt -> bool
|
x |
: |
Term.Map.key
|
|
val for_all : t -> (Term.Set.elt -> bool) -> Term.Map.key -> bool
Parameters: |
s |
: |
t
|
p |
: |
Term.Set.elt -> bool
|
x |
: |
Term.Map.key
|
|
exception Found
Choose an element satisfying some property.
val choose : t -> (Term.Set.elt -> 'a option) -> Term.Map.key -> 'a
Parameters: |
s |
: |
t
|
p |
: |
Term.Set.elt -> 'a option
|
x |
: |
Term.Map.key
|
|
val canrepr : t -> Term.Set.t
Set of canonical representatives with non-trivial equivalence classes.
These are the variables occurring in the codomain of find
which are not
themselves in the domain of find
.
val partition : t -> Term.Set.t Term.Map.t
Representation of the equivalence classes as a map with the
canonical representatives as domain and the corresponding extensions
in the codomain. The following is not terribly efficient.
val pp : Format.formatter -> t -> unit
Pretty-printing.
Parameters: |
fmt |
: |
Format.formatter
|
s |
: |
t
|
|