Type theory
In mathematics and theoretical computer science, a type theory is the formal presentation of a specific type system.[a] Type theory is the academic study of type systems.
"Theory of types" redirects here. For an architectural term, see Form (architecture) § Theories.
Some type theories serve as alternatives to set theory as a foundation of mathematics. Two influential type theories that have been proposed as foundations are:
Most computerized proof-writing systems use a type theory for their foundation. A common one is Thierry Coquand's Calculus of Inductive Constructions.
many type theories which fall under are used by the HOL family of provers and PVS;
higher-order logic
computational type theory is used by ;
NuPRL
UTT (Luo's Unified Theory of dependent Types) is used by which is both a programming language and proof assistant
Agda
" "
is a type
" of type "
is a term
"Type type "
is equal to
"Terms and both of type "
are equal
(categories with products and exponentials and one non-terminal object) correspond to the untyped λ-calculus (observed independently by Lambek and Dana Scott around 1980);
C-monoids
Classical set theory and logic have the . When a type theory encodes the concepts of "and" and "or" as types, it leads to intuitionistic logic, and does not necessarily have the law of excluded middle.[17]
law of excluded middle
In set theory, an element is not restricted to one set. The element can appear in subsets and unions with other sets. In type theory, terms (generally) belong to only one type. Where a subset would be used, type theory can use a or use a dependently-typed product type, where each element is paired with a proof that the subset's property holds for . Where a union would be used, type theory uses the sum type, which contains new canonical terms.
predicate function
Type theory has a built-in notion of computation. Thus, "1+1" and "2" are different terms in type theory, but they compute to the same value. Moreover, functions are defined computationally as lambda terms. In set theory, "1+1=2" means that "1+1" is just another way to refer the value "2". Type theory's computation does require a complicated concept of equality.
Set theory . Type theory can encode numbers as functions using Church encoding, or more naturally as inductive types, and the construction closely resembles Peano's axioms.
encodes numbers as sets
In type theory, proofs are types whereas in set theory, proofs are part of the underlying first-order logic.
[14]
intuitionistic type theory
system F
is often used to define other type theories
LF
and its derivatives
calculus of constructions
Foundations of mathematics
Logic
which has articles on many topics.
Type Theory at nLab
article at the Stanford Encyclopedia of Philosophy
Intuitionistic Type Theory
book by Henk Barendregt
Lambda Calculi with Types
textbook style paper by Helmut Brandl
Calculus of Constructions / Typed Lambda Calculus
notes by Per Martin-Löf
Intuitionistic Type Theory
book
Programming in Martin-Löf's Type Theory
book, which proposed homotopy type theory as a mathematical foundation.