module Literal:sig
..end
typeterm =
Libzipperposition.FOTerm.t
type
t = private
| |
True |
| |
False |
| |
Equation of |
| |
Prop of |
| |
Arith of |
val equal : t -> t -> bool
val equal_com : t -> t -> bool
val compare : t -> t -> int
include Interfaces.HASH
val hash : t -> int
val weight : t -> int
val heuristic_weight : (term -> int) -> t -> int
val depth : t -> int
val sign : t -> bool
val is_pos : t -> bool
val is_neg : t -> bool
val is_eqn : t -> bool
val is_prop : t -> bool
val is_eq : t -> bool
val is_neq : t -> bool
val is_arith : t -> bool
val is_arith_eqn : t -> bool
val is_arith_eq : t -> bool
val is_arith_neq : t -> bool
val is_arith_ineq : t -> bool
val is_arith_less : t -> bool
val is_arith_lesseq : t -> bool
val is_arith_divides : t -> bool
val mk_eq : term -> term -> t
val 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.t
val 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 -> t
val map : (term -> term) -> t -> t
val fold : ('a -> term -> 'a) -> 'a -> t -> 'a
val vars : t -> Libzipperposition.Type.t Libzipperposition.HVar.t list
val 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 list
val 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.t
vars
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