Module Invs
Invariants are stored in two hash tables mapping them to their certificate. One table is for one-state invariants, the other is for two-state invariants.
val is_empty : t -> boolTrue if no invariants.
val len : t -> int * intNumber of invariants (one-state, two-state).
val of_bound : t -> bool -> Numeral.t -> Term.t listBumps invariants.
If second parameter is
true, include two-state invariants.
val filter : (bool -> Term.t -> Certificate.t -> bool) -> t -> tFilters some invariants.
Function takes a boolean flag indicating if the invariant is two state.
val add_os : t -> Term.t -> Certificate.t -> unitAdds a one-state invariant.
Adds a two-state invariant.
val add_ts : t -> Term.t -> Certificate.t -> unitAdds a two-state invariant.
Remove all the invariants.
val clear : t -> unitRemove all the invariants.
val get_os : t -> Term.TermSet.tThe one-state invariants.
The two-state invariants.
val get_ts : t -> Term.TermSet.tThe two-state invariants.
val find : t -> Term.t -> Certificate.t optionReturns
Some certiftermis a known invariant, orNoneotherwise.
val flatten : t -> (Term.t * Certificate.t) list**Temporary.** Flattens some invariants into a list.
val fmt : Stdlib.Format.formatter -> t -> unitFormats some invariants.