module Make:functor (X:Sig.X) ->functor (P:Polynome.Twith type r = X.r) ->functor (C:Sig.Cwith type t = P.t and type r = X.r) ->Sig.THEORYwith type r = X.r and type t = P.t
| Parameters: |
|
type t
Type of terms of the theory
type r
Type of representants of terms of the theory
val name : stringName of the theory
val is_mine_symb : Symbols.t -> boolreturn true if the symbol is owned by the theory
val unsolvable : t -> boolreturn true when the argument is an unsolvable function of the theory
val make : Term.t -> r * Literal.LT.t listGive a representant of a term of the theory
val term_extract : r -> Term.t option
val type_info : t -> Ty.t
val embed : r -> t
val leaves : t -> r listGive the leaves of a term of the theory
val subst : r -> r -> t -> r
val compare : t -> t -> int
val hash : t -> intsolve r1 r2, solve the equality r1=r2 and return the substitution
val solve : r -> r -> (r * r) list
val print : Format.formatter -> t -> unit
val fully_interpreted : Symbols.t -> bool
module Rel:Sig.RELATIONwith type r = r