package dolmen

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

A module for constant symbols that occur in terms.

type t = term_cst

The type of constant symbols that can occur in terms

val print : Stdlib.Format.formatter -> t -> unit

Printer.

val hash : t -> int

A hash function for term constants, should be suitable to create hashtables.

val equal : t -> t -> bool

An equality function on term constants. Should be compatible with the hash function.

val compare : t -> t -> int

Comparison function on variables.

val ty : t -> ty

Returns the type of a term constant.

val mk : Path.t -> ty -> t

Create a constant symbol.

val get_tag : t -> 'a Tag.t -> 'a option

Get the value bound to a tag.

val get_tag_list : t -> 'a list Tag.t -> 'a list

Get the list of values bound to a list tag, returning the empty list if no value is bound.

val get_tag_last : t -> 'a list Tag.t -> 'a option

Get the last value bound to a list tag.

val set_tag : t -> 'a Tag.t -> 'a -> unit

Set the value bound to the tag.

val add_tag : t -> 'a list Tag.t -> 'a -> unit

Bind an additional value to a list tag.

val add_tag_opt : t -> 'a list Tag.t -> 'a option -> unit

Optionally bind an additional value to a list tag.

val add_tag_list : t -> 'a list Tag.t -> 'a list -> unit

Bind a list of additional values to a list tag.

val unset_tag : t -> _ Tag.t -> unit

Remove the binding to the given tag.

Satisfy the required interface for the typing of tptp's Thf.

include Dolmen_intf.Term.Tptp_Thf_Core_Const with type t := t
val _true : t

The smybol for true

val _false : t

The symbol for false

val neg : t

Negation.

val or_ : t

Binary disjunction of formulas

val and_ : t

Binary conjunction of formulas

val nand : t

Not-and

val nor : t

Not-or

val imply : t

Implication

val implied : t

Reverse implication

val equiv : t

Equivalence

val xor : t

Exclusive disjunction.

val ite : t

ite condition then_t else_t creates a conditional branch.

val eq : t

Build the equality of two terms.

val neq : t

Binary disequality.

val pi : t

Higher-order encoding of universla quantification.

val sigma : t

Higher-order encoding of existancial quantification.

val eqs : int -> t

n-ary equality.

val distinct : int -> t

n-ary disequality.

val _and : int -> t

n-ary conjonction.

val _or : int -> t

n-ary disjunction.

val coerce : t

Type coercion.

val multi_trigger : int -> t

Multi_triggers, indexed by the number of triggers.

val semantic_trigger : t

Semantic_triggers.

val maps_to : t

Mapping (used in triggers).

module Int : sig ... end

A module for integer constant symbols that occur in terms.

module Rat : sig ... end

A module for rational constant symbols that occur in terms.

module Real : sig ... end

A module for real constant symbols that occur in terms.

module Array : sig ... end

A module for array constant symbols that occur in terms.

module Bitv : sig ... end

A module for bit vector constant symbols that occur in terms.

module Float : sig ... end

A module for floating point constant symbols that occur in terms.

module String : sig ... end

A module for string constant symbols that occur in terms.