BeHOLd.ClassicalHOL.Definitions (behold v1.1.3)
View SourceContains macros for the connectives of classical higher-order logic.
This includes constants and terms facilitating pattern matching and term
construction. Note that more types, constants and terms can be introduced via
the HOL library.
The module offers a limited amount of common types under the section
Types.
New types can be introduced via the function
HOL.Data.mk_type/2.
It also provides a collection of common HOL connectives which are either from the signature or defined in terms of connectives from the signature.
Summary
Signature
Returns a list of the names of the signature symbols in the logic.
Types
Base type for individuals (type ι).
Type for symbols of type ι⇾ι, i.e., endomorphisms/operators on type ι.
Type for symbols of type ι⇾ι⇾ι, i.e., binary operators on type ι.
Type for symbols of type ι⇾ι⇾o, e.g. relations on individuals.
Type for symbols of type ι⇾o, e.g. sets of individuals or predicates over individuals.
Type for symbols of type (ι⇾o)⇾ι, e.g. the choice operator (Hilbert's ε).
Type for symbols of type (ι⇾o)⇾(ι⇾o)⇾ι⇾o, e.g. set operations like union (∪) or intersection (∩).
Type for symbols of type (ι⇾o)⇾(ι⇾o)⇾o, i.e. relations between sets of individuals, e.g. the subset relation (⊆).
Type for symbols of type (ι⇾o)⇾o, e.g. sets of sets of individuals, or predicates over sets of individuals.
Base type for booleans (type o). Represents true or false.
Type for symbols of type o⇾o, e.g. unary connectives like negateion.
Type for symbols of type o⇾o⇾o, e.g. binary connectives like conjunction.
Constants
Constant representing the conjunction operator.
Constant representing equality over instances of the given type.
Constant representing the equivalence operator.
Constant representing falsity.
Constant representing the implication operator.
Constant representing the negation operator.
Constant representing the disjunction operator.
Constant representing the pi operator (universal quantification) over the given element type.
Constant representing the sigma operator (existential quantification) over the given element type.
Constant representing truth.
Terms
A term representation of the conjunction operator.
A term representation of the equality operator operating on the given type.
A term representation of the equivalence operator.
A term representation of falsity.
Term representation of the reverse implication operator. Rewrites the term in terms of (normal) implication.
A term representation of the implication operator.
Term representation of the NAND-operator. Rewrites the term in terms of negated conjunction.
A term representation of the negation operator.
Term representation of the NOR-operator. Rewrites the term in terms of negated disjunction.
Term representation of the negated equality operator operating on the given type.
A term representation of the disjunction operator.
A term representation of the pi operator (universal quantification) for the given element type. Returns a lambda abstraction that takes a predicate.
A term representation of the sigma operator (existential quantification) for the given element type. Returns a lambda abstraction that takes a predicate.
A term representation of truth.
Term representation of the XOR-operator. Rewrites the term in terms of negated equivalence.
Signature
Types
@spec type_i() :: HOL.Data.type()
Base type for individuals (type ι).
@spec type_ii() :: HOL.Data.type()
Type for symbols of type ι⇾ι, i.e., endomorphisms/operators on type ι.
@spec type_iii() :: HOL.Data.type()
Type for symbols of type ι⇾ι⇾ι, i.e., binary operators on type ι.
@spec type_iio() :: HOL.Data.type()
Type for symbols of type ι⇾ι⇾o, e.g. relations on individuals.
@spec type_io() :: HOL.Data.type()
Type for symbols of type ι⇾o, e.g. sets of individuals or predicates over individuals.
@spec type_io_i() :: HOL.Data.type()
Type for symbols of type (ι⇾o)⇾ι, e.g. the choice operator (Hilbert's ε).
@spec type_io_io_io() :: HOL.Data.type()
Type for symbols of type (ι⇾o)⇾(ι⇾o)⇾ι⇾o, e.g. set operations like union (∪) or intersection (∩).
@spec type_io_io_o() :: HOL.Data.type()
Type for symbols of type (ι⇾o)⇾(ι⇾o)⇾o, i.e. relations between sets of individuals, e.g. the subset relation (⊆).
@spec type_io_o() :: HOL.Data.type()
Type for symbols of type (ι⇾o)⇾o, e.g. sets of sets of individuals, or predicates over sets of individuals.
@spec type_o() :: HOL.Data.type()
Base type for booleans (type o). Represents true or false.
@spec type_oo() :: HOL.Data.type()
Type for symbols of type o⇾o, e.g. unary connectives like negateion.
@spec type_ooo() :: HOL.Data.type()
Type for symbols of type o⇾o⇾o, e.g. binary connectives like conjunction.
Constants
@spec and_const() :: HOL.Data.declaration()
Constant representing the conjunction operator.
@spec equals_const(HOL.Data.type()) :: HOL.Data.declaration()
Constant representing equality over instances of the given type.
@spec equivalent_const() :: HOL.Data.declaration()
Constant representing the equivalence operator.
@spec false_const() :: HOL.Data.declaration()
Constant representing falsity.
@spec implies_const() :: HOL.Data.declaration()
Constant representing the implication operator.
@spec neg_const() :: HOL.Data.declaration()
Constant representing the negation operator.
@spec or_const() :: HOL.Data.declaration()
Constant representing the disjunction operator.
@spec pi_const(HOL.Data.type()) :: HOL.Data.declaration()
Constant representing the pi operator (universal quantification) over the given element type.
@spec sigma_const(HOL.Data.type()) :: HOL.Data.declaration()
Constant representing the sigma operator (existential quantification) over the given element type.
@spec true_const() :: HOL.Data.declaration()
Constant representing truth.
Terms
@spec and_term() :: HOL.Data.hol_term()
A term representation of the conjunction operator.
@spec equals_term(HOL.Data.type()) :: HOL.Data.hol_term()
A term representation of the equality operator operating on the given type.
@spec equivalent_term() :: HOL.Data.hol_term()
A term representation of the equivalence operator.
@spec false_term() :: HOL.Data.hol_term()
A term representation of falsity.
@spec implied_by_term() :: HOL.Data.hol_term()
Term representation of the reverse implication operator. Rewrites the term in terms of (normal) implication.
@spec implies_term() :: HOL.Data.hol_term()
A term representation of the implication operator.
@spec nand_term() :: HOL.Data.hol_term()
Term representation of the NAND-operator. Rewrites the term in terms of negated conjunction.
@spec neg_term() :: HOL.Data.hol_term()
A term representation of the negation operator.
@spec nor_term() :: HOL.Data.hol_term()
Term representation of the NOR-operator. Rewrites the term in terms of negated disjunction.
@spec not_equals_term(HOL.Data.type()) :: HOL.Data.hol_term()
Term representation of the negated equality operator operating on the given type.
@spec or_term() :: HOL.Data.hol_term()
A term representation of the disjunction operator.
@spec pi_term(HOL.Data.type()) :: HOL.Data.hol_term()
A term representation of the pi operator (universal quantification) for the given element type. Returns a lambda abstraction that takes a predicate.
@spec sigma_term(HOL.Data.type()) :: HOL.Data.hol_term()
A term representation of the sigma operator (existential quantification) for the given element type. Returns a lambda abstraction that takes a predicate.
@spec true_term() :: HOL.Data.hol_term()
A term representation of truth.
@spec xor_term() :: HOL.Data.hol_term()
Term representation of the XOR-operator. Rewrites the term in terms of negated equivalence.