Module type Zf.Term

module type Term = Ast_zf.Term

type t 
The type of terms.
type id 
The type of identifiers
type location 
The type of locations attached to terms.
val tType : t
val wildcard : t
val prop : t
val true_ : t
val false_ : t
Standard pre-defined constants.
val const : ?loc:location -> id -> t
Create a new constant.
val apply : ?loc:location ->
t -> t list -> t
Application of terms.
val colon : ?loc:location -> t -> t -> t
Juxtaposition of terms, usually used for annotating terms with types.
val arrow : ?loc:location -> t -> t -> t
Arow, i.e function type constructor, currifyed.
val eq : ?loc:location -> t -> t -> t
Make an equality between terms.
val not_ : ?loc:location -> t -> t
val or_ : ?loc:location -> t list -> t
val and_ : ?loc:location -> t list -> t
val imply : ?loc:location -> t -> t -> t
val equiv : ?loc:location -> t -> t -> t
Usual propositional functions.
val pi : ?loc:location ->
t list -> t -> t
Dependant product, or polymorphic type quantification. Used to build polymorphic function types such as, Pi [a] (Arrow a a).
val letin : ?loc:location ->
t list -> t -> t
Local term binding.
val forall : ?loc:location ->
t list -> t -> t
Universal propositional quantification.
val exists : ?loc:location ->
t list -> t -> t
Existencial porpositional qantification.