module Literal:sig..end
typeterm =Libzipperposition.FOTerm.t
type t = private
| |
True |
| |
False |
| |
Equation of |
| |
Prop of |
| |
Arith of |
val equal : t -> t -> boolval equal_com : t -> t -> boolval compare : t -> t -> intinclude Interfaces.HASH
val hash : t -> intval weight : t -> intval heuristic_weight : (term -> int) -> t -> intval depth : t -> intval sign : t -> bool
val is_pos : t -> boolval is_neg : t -> boolval is_eqn : t -> boolval is_prop : t -> boolval is_eq : t -> boolval is_neq : t -> boolval is_arith : t -> bool
val is_arith_eqn : t -> boolval is_arith_eq : t -> bool
val is_arith_neq : t -> bool
val is_arith_ineq : t -> boolval is_arith_less : t -> bool
val is_arith_lesseq : t -> bool
val is_arith_divides : t -> bool
val mk_eq : term -> term -> tval mk_neq : term -> term -> t
val mk_lit : term -> term -> bool -> t
val mk_prop : term -> bool -> t
val mk_true : term -> t
val mk_false : term -> t
val mk_tauto : t
val mk_absurd : t
val mk_arith : ArithLit.t -> t
val mk_arith_op : ArithLit.op -> Z.t Monome.t -> Z.t Monome.t -> t
val mk_arith_eq : Z.t Monome.t -> Z.t Monome.t -> t
val mk_arith_neq : Z.t Monome.t -> Z.t Monome.t -> t
val mk_arith_less : Z.t Monome.t -> Z.t Monome.t -> t
val mk_arith_lesseq : Z.t Monome.t -> Z.t Monome.t -> t
val mk_divides : ?sign:bool -> Z.t -> power:int -> Z.t Monome.t -> t
val mk_not_divides : Z.t -> power:int -> Z.t Monome.t -> t
val matching : ?subst:Libzipperposition.Substs.t ->
pattern:t Libzipperposition.Scoped.t ->
t Libzipperposition.Scoped.t -> Libzipperposition.Substs.t Sequence.tval subsumes : ?subst:Libzipperposition.Substs.t ->
t Libzipperposition.Scoped.t ->
t Libzipperposition.Scoped.t -> Libzipperposition.Substs.t Sequence.t
val variant : ?subst:Libzipperposition.Substs.t ->
t Libzipperposition.Scoped.t ->
t Libzipperposition.Scoped.t -> Libzipperposition.Substs.t Sequence.t
val unify : ?subst:Libzipperposition.Substs.t ->
t Libzipperposition.Scoped.t ->
t Libzipperposition.Scoped.t -> Libzipperposition.Substs.t Sequence.t
val are_variant : t -> t -> bool
val apply_subst : renaming:Libzipperposition.Substs.Renaming.t ->
Libzipperposition.Substs.t ->
t Libzipperposition.Scoped.t -> t
val apply_subst_no_renaming : Libzipperposition.Substs.t ->
t Libzipperposition.Scoped.t -> t
val apply_subst_no_simp : renaming:Libzipperposition.Substs.Renaming.t ->
Libzipperposition.Substs.t ->
t Libzipperposition.Scoped.t -> t
val apply_subst_list : renaming:Libzipperposition.Substs.Renaming.t ->
Libzipperposition.Substs.t ->
t list Libzipperposition.Scoped.t -> t list
val negate : t -> tval map : (term -> term) -> t -> tval fold : ('a -> term -> 'a) -> 'a -> t -> 'aval vars : t -> Libzipperposition.Type.t Libzipperposition.HVar.t listval var_occurs : Libzipperposition.Type.t Libzipperposition.HVar.t -> t -> bool
val is_ground : t -> bool
val symbols : t -> Libzipperposition.ID.Set.t
val root_terms : t -> term listval is_trivial : t -> bool
val is_absurd : t -> bool
val fold_terms : ?position:Libzipperposition.Position.t ->
?vars:bool ->
?ty_args:bool ->
which:[< `All | `Max ] ->
ord:Libzipperposition.Ordering.t ->
subterms:bool ->
t -> (term * Libzipperposition.Position.t) Sequence.tvars is false.
vars decides whether variables are iterated on too (default false)
subterms decides whether strict subterms, not only terms that
occur directly under the literal, are explored.
which is used to decide which terms to visit:
which is `Max, only the maximal terms are exploredwhich is `All, all root terms are exploredmodule Comp:sig..end
module Seq:sig..end
module Pos:sig..end
module View:sig..end
module Conv:sig..end
typeprint_hook =CCFormat.t -> t -> bool
val add_default_hook : print_hook -> unit
val pp_debug : ?hooks:print_hook list -> t CCFormat.printer
val pp : t CCFormat.printer
val pp_tstp : t CCFormat.printer
val to_string : t -> string