module F: sig
.. end
module T: Qed.Term.Make
(
Lang.ADT
)
(
Lang.Field
)
(
Lang.Fun
)
module Pretty: Qed.Pretty.Make
(
T
)
include T
type
unop = term -> term
type
binop = term -> term -> term
val e_zero : term
val e_one : term
val e_minus_one : term
val e_zero_real : term
val hex_of_float : float -> string
val e_int64 : int64 -> term
val e_fact : int64 -> term -> term
val e_bigint : Integer.t -> term
val e_range : term -> term -> term
e_range a b = b+1-a
val e_hexfloat : float -> T.term
val e_setfield : term -> Lang.Field.t -> term -> term
type
pred = term
type
cmp = term -> term -> pred
val p_bool : 'a -> 'a
val e_prop : 'a -> 'a
val p_bools : 'a -> 'a
val e_props : 'a -> 'a
val lift : ('a -> 'b) -> 'a -> 'b
val is_zero : T.term -> bool
val eqp : t -> t -> bool
val comparep : t -> t -> int
val is_ptrue : term -> Qed.Logic.maybe
val is_pfalse : term -> Qed.Logic.maybe
val is_equal : term -> term -> Qed.Logic.maybe
val p_equal : term -> term -> term
val p_neq : term -> term -> term
val p_leq : term -> term -> term
val p_lt : term -> term -> term
val p_positive : term -> term
val p_true : term
val p_false : term
val p_not : term -> term
val p_bind : Qed.Logic.binder -> var -> term -> term
val p_forall : var list -> term -> term
val p_exists : var list -> term -> term
val p_subst : ?pool:pool -> var -> term -> term -> term
val p_and : term -> term -> term
val p_or : term -> term -> term
val p_imply : term -> term -> term
val p_hyps : term list -> term -> term
val p_equiv : term -> term -> term
val p_if : term -> term -> term -> term
val p_conj : term list -> term
val p_disj : term list -> term
val p_all : ('a -> term) -> 'a list -> term
val p_any : ('a -> term) -> 'a list -> term
val p_call : Lang.Fun.t -> term list -> term
val p_close : term -> term
val occurs : Vars.elt -> term -> bool
val intersect : term -> term -> bool
val occursp : Vars.elt -> term -> bool
val intersectp : term -> term -> bool
val varsp : term -> Vars.t
val pred : term -> repr
val idp : t -> int
val pp_term : Format.formatter -> T.term -> unit
val pp_pred : Format.formatter -> T.term -> unit
val pp_var : Format.formatter -> var -> unit
val pp_vars : Format.formatter -> Vars.t -> unit
val debugp : Format.formatter -> T.term -> unit
type
env = Pretty.env
val empty : Pretty.env
val closed : T.Vars.t -> Pretty.env
val marker : Pretty.env -> T.marks
val mark_e : T.marks -> T.term -> unit
val mark_p : T.marks -> T.term -> unit
val define : (Pretty.env -> string -> T.term -> 'a) ->
Pretty.env -> T.marks -> Pretty.env
val pp_eterm : Pretty.env -> Format.formatter -> T.term -> unit
val pp_epred : Pretty.env -> Format.formatter -> T.term -> unit
module Pmap: Tmap
module Pset: Tset
module P: Qed.Pattern.Make
(
T
)
type
pattern = P.pattern
val rewrite : name:string ->
vars:T.tau array ->
P.pattern -> (term array -> T.term) -> unit