Module AC.Make
Parameters
Signature
module Env = Envval on_add : AC_intf.spec Logtk.Signal.tval add : proof:Logtk.Proof.parent -> Logtk.ID.t -> Logtk.Type.t -> unitDeclare that the given symbol is AC, and update the Env subsequently by adding clauses, etc.
val is_ac : Logtk.ID.t -> boolval find_proof : Logtk.ID.t -> Logtk.Proof.parentRecover the proof for the AC-property of this symbol.
- raises Not_found
if the symbol is not AC
val symbols : unit -> Logtk.ID.Set.tset of AC symbols
val symbols_of_terms : Logtk.Term.t Sequence.t -> Logtk.ID.Set.tset of AC symbols occurring in the given term
val scan_statement : Logtk.Statement.clause_t -> unitCheck whether the statement contains an "AC" attribute, do the proper declaration in this case
Rules
val is_trivial_lit : Logtk.Literal.t -> boolIs the literal AC-trivial?
val is_trivial : C.t -> boolCheck whether the clause is AC-trivial
val simplify : Env.simplify_ruleSimplify the clause modulo AC