Intuitionistic Type Theory
Intuitionistic type theory (also constructive type theory or Martin-Löf type theory) is a formal logical system and philosophical foundation for constructive mathematics. It is a full-scale system which aims to play a similar role for constructive mathematics as Zermelo-Fraenkel Set Theory does for classical mathematics. It is based on the propositions-as-types principle and clarifies the Brouwer-Heyting-Kolmogorov interpretation of intuitionistic logic. It extends this interpretation to the more general setting of intuitionistic type theory and thus provides a general conception not only of what a constructive proof is, but also of what a constructive mathematical object is. The main idea is that mathematical concepts such as elements, sets and functions are explained in terms of concepts from programming such as data structures, data types and programs. We quote the article “Constructive Mathematics and Computer Programming” (Martin-Löf 1982):
Now, it is the contention of the intuitionists (or constructivists, I shall use these terms synonymously) that the basic mathematical notions, above all the notion of function, ought to be interpreted in such a way that the cleavage between mathematics, classical mathematics, that is, and programming that we are witnessing at present disappears.
This article describes the formal system of intuitionistic type theory and its semantic foundations.
In this entry, we first give an overview of the most important aspects of intuitionistic type theory—a kind of “extended abstract”. It is meant for a reader who is already somewhat familiar with the theory. Section 2 on the other hand, is meant for a reader who is new to intuitionistic type theory but familiar with traditional logic, including propositional and predicate logic, arithmetic, and set theory. Here we informally introduce several aspects that distinguish intuitionistic type theory from these traditional theories. In Section 3 we present a basic version of the theory, close to Martin-Löf’s first published version from 1972. The reader who was intrigued by the informality of Section 2 will now see in detail how the theory is built up. Section 4 presents a number of important extensions of the original theory. In particular, it emphasizes the fundamental role of inductive (and inductive-recursive) definitions. Section 5 introduces the underlying philosophical ideas including the theory of meaning developed by Martin-Löf. While Section 5 is about philosophy and foundations, Section 6 gives an overview of mathematical models of the theory. In Section 7 finally, we describe several important variations of the core Martin-Löf “intensional” theory described in Section 3 and 4.
- 1. Overview
- 2. Propositions as Types
- 3. Basic Intuitionistic Type Theory
- 4. Extensions
- 5. Meaning Explanations
- 6. Mathematical Models
- 7. Variants of the Theory
- Bibliography
- Academic Tools
- Other Internet Resources
- Related Entries
1. Overview
We begin with a bird’s eye view of some important aspects of intuitionistic type theory. Readers who are unfamiliar with the theory may prefer to skip it on a first reading.
The origins of intuitionistic type theory are Brouwer’s intuitionism and Russell’s type theory. Like Church’s classical simple theory of types it is based on a lambda calculus with types, but differs from it in that it uses the propositions-as-types principle, discovered by Curry (1958) for propositional logic and extended to predicate logic by Howard (1980) and de Bruijn (1970). This extension was made possible by the introduction of indexed families of types (dependent types) for representing the predicates of predicate logic. In this way all logical connectives and quantifiers can be interpreted by type formers. In intuitionistic type theory further types are added, such as a type of natural numbers, a type of small types (a universe) and a type of well-founded trees. The resulting theory contains intuitionistic number theory (Heyting arithmetic) and much more.
The theory is formulated in natural deduction where the rules for each type former are classified as formation, introduction, elimination, and equality rules. These rules exhibit certain symmerties between the introduction and elimination rules following Gentzen’s and Prawitz’ treatment of natural deduction, as explained in the entry on proof-theoretic semantics.
The elements of propositions, when interpreted as types, are called proof-objects. When proof-objects are added to the natural deduction calculus it becomes a typed lambda calculus with dependent types, which extends Church’s original typed lambda calculus. The equality rules are computation rules for the terms of this calculus. Each function definable in the theory is total and computable. Intuitionistic type theory is thus a typed functional programming language with the unusual property that all programs terminate.
Intuitionistic type theory is not only a formal logical system but also provides a comprehensive philosophical framework for intuitionism. It is an interpreted language, where the distinction between the demonstration of a judgment and the proof of a proposition plays a fundamental role (Sundholm 2012). The meaning of the judgments of intuitionistic type theory is explained in terms of computations of the canonical forms of types and terms. These informal, intuitive meaning explanations are “pre-mathematical” and should be contrasted to formal mathematical models developed inside a standard mathematical framework such as set theory.
This meaning theory also justifies a variety of inductive, recursive, and inductive-recursive definitions. Although proof-theoretically strong notions, such as analogues of certain large cardinals, can be justified, the system is considered predicative. Impredicative definitions of the kind found in higher-order logic, intuitionistic set theory, and topos theory are not part of the theory. Neither is Markov’s principle, and thus the theory is distinct from Russian constructivism.
An alternative formal logical system for predicative constructive mathematics is Myhill and Aczel’s constructive Zermelo-Fraenkel set theory (CZF). This theory, which is based on intuitionistic first-order predicate logic and weakens some of the axioms of classical Zermelo-Fraenkel Set Theory, has a natural interpretation in intuitionistic type theory. Martin-Löf’s meaning explanations thus also indirectly form a basis for CZF.
Variants of intuitionistic type theory underlie several widely used proof assistants, including NuPRL, Coq, and Agda. These proof assistants are computer systems that have been used for formalizing large and complex proofs of mathematical theorems, such as the Four Colour Theorem in graph theory and the Feit-Thompson Theorem in finite group theory. They have also been used to prove the correctness of a realistic C compiler (Leroy 2009) and other computer software.
Philosophically and practically, intuitionistic type theory is a foundational framework where constructive mathematics and computer programming are, in a deep sense, the same. This point has been emphasized by (Gonthier 2008) in the paper in which he describes his proof of the Four Colour Theorem:
The approach that proved successful for this proof was to turn almost every mathematical concept into a data structure or a program in the Coq system, thereby converting the entire enterprise into one of program verification.
2. Propositions as Types
2.1 Intuitionistic Type Theory: a New Way of Looking at Logic?
Intuitionistic type theory offers a new way of analyzing logic, mainly through its introduction of explicit proof objects. This provides a direct computational interpretation of logic, since there are computation rules for proof objects. As regards expressive power, intuitionistic type theory may be considered as an extension of first-order logic, much as higher order logic, but predicative.
2.1.1 A Type Theory
Russell developed
type theory
in response to his discovery of a paradox in naive set theory. In his
ramified type theory mathematical objects are classified according to
their types: the type of propositions, the type of objects,
the type of properties of objects, etc. When Church developed his
simple theory of types
on the basis of the typed lambda calculus he added the rule that
there is a type of functions between any two types of the theory.
Intuitionistic type theory further extends the simply typed lambda
calculus with dependent types, that is, indexed families of types. An
example is the family of types of
Types have been widely used in programming for a long time. Early high-level programming languages introduced types of integers and floating point numbers. Modern programming languages often have rich type systems with many constructs for forming new types. Intuitionistic type theory is a functional programming language where the type system is so rich that practically any conceivable property of a program can be expressed as a type. Types can thus be used as specifications of the task of a program.
2.1.2 An intuitionstic logic with proof-objects
Brouwer’s analysis of logic led him to an intuitionistic logic which rejects the law of excluded middle and the law of double negation. These laws are not valid in intuitionistic type theory. Thus it does not contain classical (Peano) arithmetic but only intuitionistic (Heyting) arithmetic. (It is another matter that Peano arithmetic can be interpreted in Heyting arithmetic by the double negation interpretation, see the entry on intuitionistic logic.)
Consider a theorem of intuitionistic arithmetic, such as the division theorem
A formal proof (in the usual sense) of this theorem is a sequence (or tree) of formulas, where the last (root) formula is the theorem and each formula in the sequence is either an axiom (a leaf) or the result of applying an inference rule to some earlier (higher) formulas.
When the division theorem is proved in intuitionistic type theory, we
do not only build a formal proof in the usual sense but also a
construction (or proof-object)
“
to express that
to express that the proof object “
Crucially,
2.1.3 An extension of first-order predicate logic
Intuitionistic type theory can be considered as an extension of
first-order logic, much as higher order logic is an extension of first
order logic. In higher order logic we find some individual domains
which can be interpreted as any sets we like. If there are relational
constants in the signature these can be interpreted as any relations
between the sets interpreting the individual domains. On top of that
we can quantify over relations, and over relations of relations, etc.
We can think of higher order logic as first-order logic equipped with
a way of introducing new domains of quantification: if
Intuitionistic type theory can be viewed in a similar way, only here
the possibilities for introducing domains of quantification are
richer, one can use
If
The interpretation can be any family of sets
Now clearly
The interpretation of relations as families allows for keeping track
of proofs or evidence that
In Montague semantics, higher order logic is used to give semantics of natural language (and examples as above). Ranta (1994) introduced the idea to instead employ intuitionistic type theory to better capture sentence structure with the help of dependent types.
In contrast, how would the mathematical relation
The right hand is rendered as
2.1.4 A logic with several forms of judgment
The type system of intuitionistic type theory is very expressive. As a consequence the well-formedness of a type is no longer a simple matter of parsing, it is something which needs to be proved. Well-formedness of a type is one form of judgment of intuitionistic type theory. Well-typedness of a term with respect to a type is another. Furthermore, there are equality judgments for types and terms. This is yet another way in which intuitionistic type theory differs from ordinary first order logic with its focus on the sole judgment expressing the truth of a proposition.
2.1.5 Semantics
While a standard presentation of first-order logic would follow Tarski
in defining the notion of model, intuitionistic type theory follows
the tradition of Brouwerian meaning theory as further developed by
Heyting and Kolmogorov, the so called BHK-interpretation of logic. The
key point is that the proof of an implication
Moreover, whereas Tarski semantics is usually presented meta-mathematically, and assumes set theory, Martin-Löf’s meaning theory of intuitionistic type theory should be understood directly and “pre-mathematically”, that is, without assuming a meta-language such as set theory.
2.1.6 A functional programming language
Readers with a background in the lambda calculus and functional programming can get an alternative first approximation of intuitionistic type theory by thinking about it as a typed functional programming language in the style of Haskell or one of the dialects of ML. However, it differs from these in two crucial aspects: (i) it has dependent types (see below) and (ii) all typable programs terminate. (Note that intuitionistic type theory has influenced the extension of Haskell with generalized algebraic datatypes which sometimes can play a similar role as inductively defined dependent types.)
2.2 The Curry-Howard Correspondence
As already mentioned, the principle that
a proposition is the type of its proofs.
is fundamental to intuitionistic type theory. This principle is also known as the Curry-Howard correspondence or even Curry-Howard isomorphism. Curry discovered a correspondence between the implicational fragment of intuitionistic logic and the simply typed lambda-calculus. Howard extended this correspondence to first-order predicate logic. In intuitionistic type theory this correspondence becomes an identification of proposition and types, which has been extended to include quantification over higher types and more.
2.3 Sets of Proof-Objects
So what are these proof-objects like? They should not be thought of as logical derivations, but rather as some (structured) symbolic evidence that something is true. Another term for such evidence is “truth-maker”.
It is instructive, as a somewhat crude first approximation, to replace
types by ordinary sets in this correspondence. Define a set
Then
Consider the proposition that
If we apply this construction to the family
2.4 Dependent Types
In intuitionistic type theory there are primitive type formers
Dependent types can also be defined by primitive recursion. An example
is the type of
where
2.5 Propositions as Types in Intuitionistic Type Theory
With propositions as types, predicates become dependent types. For
example, the predicate
According to the Curry-Howard interpretation of propositions as types, the logical constants are interpreted as type formers:
where
For example, consider the proposition
expressing that there are arbitrarily large primes. Under the
Curry-Howard interpretation this becomes the type
Note that the proof which derives a contradiction from the assumption
that there is a largest prime is not constructive, since it does not
explicitly give a way to compute an even larger prime. To turn this
proof into a constructive one we have to show explicitly how to
construct the larger prime. (Since proposition (
3. Basic Intuitionistic Type Theory
We now present a core version of intuitionistic type theory, closely
related to the first version of the theory presented by
Martin-Löf in 1972 (Martin-Löf 1998 [1972]). In addition to
the type formers needed for the Curry-Howard interpretation of typed
intuitionistic predicate logic listed above, we have two types: the
type
The resulting theory contains intuitionistic number theory
This core intuitionistic type theory is not only the original one, but
perhaps the minimal version which exhibits the essential features of
the theory. Later extensions with primitive identity types,
well-founded tree types, universe hierarchies, and general notions of
inductive and inductive-recursive definitions have increased the
proof-theoretic strength of the theory and also made it more
convenient for programming and formalization of mathematics. For
example, with the addition of well-founded trees we can interpret the
Constructive Zermelo-Fraenkel Set Theory
3.1 Judgments
In Martin-Löf (1996) a general philosophy of logic is presented where the traditional notion of judgment is expanded and given a central position. A judgment is no longer just an affirmation or denial of a proposition, but a general act of knowledge. When reasoning mathematically we make judgments about mathematical objects. One form of judgment is to state that some mathematical statement is true. Another form of judgment is to state that something is a mathematical object, for example a set.
First-order reasoning may be presented using a single kind of judgment:
the proposition
is true under the hypothesis that the propositions are all true.
We write this hypothetical judgment as a so-called Gentzen sequent
Note that this is a single judgment that should not be confused with
the derivation of the judgment
3.2 Judgment Forms
Martin-Löf type theory has four basic forms of judgments and is a considerably more complicated system than first-order logic. One reason is that more information is carried around in the derivations due to the identification of propositions and types. Another reason is that the syntax is more involved. For instance, the well-formed formulas (types) have to be generated simultaneously with the provably true formulas (inhabited types).
The four forms of categorical judgment are
-
, meaning that is a well-formed type, -
, meaning that has type , -
, meaning that and are equal types, -
, meaning that and are equal elements of type .
In general, a judgment is hypothetical, that is, it is made
in a context
-
, meaning that is a well-formed type in the context , -
, meaning that has type in context , -
, meaning that and are equal types in the context , -
, meaning that and are equal elements of type in the context .
Under the proposition as types interpretation
can be understood as the judgment that
Remark 3.1. Martin-Löf (1994) argues
that Kant’s analytic judgment a priori and
synthetic judgment a priori can be exemplified, in the realm
of logic, by ([analytic]) and ([synthetic]) respectively. In the
analytic judgment ([analytic]) everything that is needed to make the
judgment evident is explicit. For its synthetic version ([synthetic])
a possibly complicated proof construction
“ […] the logic of analytic judgments, that is, the logic for deriving judgments of the two analytic forms, is complete and decidable, whereas the logic of synthetic judgments is incomplete and undecidable, as was shown by Gödel.” Martin-Löf (1994: 97).
The decidability of the two analytic judgments (
Sometimes also the following forms are explicitly considered to be judgments of the theory:
-
, meaning that is a well-formed context. -
, meaning that and are equal contexts.
Below we shall abbreviate the judgment
3.3 Inference Rules
When stating the rules we will use the letter
The first group of inference rules are general rules including rules of assumption, substitution, and context formation. There are also rules which express that equalities are equivalence relations. There are numerous such rules, and we only show the particularly important rule of type equality which is crucial for computation in types:
The remaining rules are specific to the type formers. These are classified as formation, introduction, elimination, and equality rules.
3.4 Intuitionistic Predicate Logic
We only give the rules for
In the following
Furthermore, there are congruence rules expressing that operations
introduced by the formation, introduction, and elimination rules
preserve equality. For example, the congruence rule for
3.5 Natural Numbers
As in Peano arithmetic the natural numbers are generated by 0 and the
successor operation
We write
The rule of
Gödel’s System
3.6 The Universe of Small Types
Martin-Löf’s first version of type theory (Martin-Löf 1971a) had an axiom stating that there is a type of all types. This was proved inconsistent by Girard who found that the Burali-Forti paradox could be encoded in this theory.
To overcome this pathological impredicativity, but still retain some
of its expressivity, Martin-Löf introduced in 1972 a universe
Since
This type-theoretic universe
In Martin-Löf (1975) the universe is extended to a countable hierarchy of universes
In this way each type has a type, not only each small type.
3.7 Propositional Identity
Above, we introduced the equality judgment
This is usually called a “definitional equality” because
it can be decided by normalizing the terms
3.8 The Axiom of Choice is a Theorem
The following form of the axiom of choice (the type-theoretic axiom of choice) is an immediate consequence of the BHK-interpretation of the intuitionistic quantifiers, and is easily proved in intuitionistic type theory:
The reason is that
It is perhaps surprising that intuitionistic type theory directly validates an axiom of choice, since this axiom is often considered problematic from a constructive point of view. A possible explanation for this state of affairs is that the above is an axiom of choice for types, and that types are not in general appropriate constructive approximations of sets in the classical sense. For example, we can represent a real number as a Cauchy sequence in intuitionistic type theory, but the set of real numbers is not the type of Cauchy sequences, but the type of Cauchy sequences up to equiconvergence. More generally, a set in Bishop’s constructive mathematics is represented by a type together with an equivalence relation.
If
4. Extensions
4.1 The Logical Framework
The above completes the description of a core version of intuitionistic type theory close to that of (Martin-Löf 1998 [1972]).
In 1986 Martin-Löf proposed a reformulation of intuitionistic
type theory; see Nordström, Peterson and Smith (1990) for an
exposition. The purpose was to give a more compact formulation, where
-
the theory of types (the logical framework);
-
the theory of sets (small types).
Remark 4.1. Note that the word “set” is used in several different senses in the type theory community. In the logical framework it means “small type”. In Bishop’s constructive mathematics it means a type with an equivalence relations. To avoid confusion the latter are often called “setoids” or “extensional sets” in type. A third use of the word “set” is in homotopy type theory is as “h-set” meaning a type the identity type of which is a proposition. See below.
The logical framework has only two type formers:
The other small type formers (“set formers”) are introduced in the theory of sets. In the logical framework formulation each formation, introduction, and elimination rule can be expressed as the typing of a new constant. For example, the rules for natural numbers become
where we have omitted the common context
Moreover, the equality rules can be expressed as equations
under suitable assumptions.
In the sequel we will present several extensions of type theory. To keep the presentation uniform we will however not use the logical framework presentation of type theory, but will use the same notation as in section 2.
4.2 A General Identity Type Former
As we mentioned above, identity on natural numbers can be defined by primitive recursion. Identity relations on other types can also be defined in the basic version of intuitionistic type theory presented in section 2.
However, Martin-Löf (1975) extended intuitionistic type theory
with a uniform primitive identity type former
Note that if
By constructing a model of type theory where types are interpreted as
groupoids (categories where all arrows are isomorphisms)
Hofmann and Streicher (1998) showed that it cannot be proved in
intuitionistic type theory that all proofs of
The
4.3 Well-Founded Trees
A type of well-founded trees of the form
We omit the rules of
Adding well-founded trees to intuitionistic type theory increases its proof-theoretic strength significantly (Setzer (1998)).
4.4 Iterative Sets and CZF
An important application of well-founded trees is Aczel’s (1978) construction of a type-theoretic model of Constructive Zermelo Fraenkel Set Theory. To this end he defines the type of iterative sets as
Let
Note that an iterative set is a data-structure in the sense of
functional programming: a possibly infinitely branching well-founded
tree. Different trees may represent the same set. We therefore need to
define a notion of extensional equality between iterative sets which
disregards repetition and order of elements. This definition is
formally similar to the definition of bisimulation of processes in
process algebra. The type
4.5 Inductive Definitions
The notion of an inductive definition is fundamental in intuitionistic type theory. It is a primitive notion and not, as in set theory, a derived notion where an inductively defined set is defined impredicatively as the smallest set closed under some rules. However, in intuitionistic type theory inductive definitions are considered predicative: they are viewed as being built up from below.
The inductive definability of types is inherent in the meaning explanations of intuitionistic type theory which we shall discuss in the next section. In fact, intuitionistic type theory can be described briefly as a theory of inductive, recursive, and inductive-recursive definitions based on a framework of lambda calculus with dependent types.
We have already seen the type of natural numbers and the type of well-founded trees as examples of types given by inductive definitions; the natural numbers is an example of an ordinary finitary inductive definition and the well-founded trees of a generalized possibly infinitary inductive definition. The introduction rules describe how elements of these types are inductively generated and the elimination and equality rules describe how functions from these types can be defined by structural recursion on the way these elements are generated. According to the propositions as types principle, the elimination rules are simultaneously rules for proof by structural induction on the way the elements are generated.
The type formers
The common structure of the rules of the type formers can be captured
by a general schema for inductive definitions (Dybjer 1991). This
general schema has many useful instances, for example, the type
Other useful instances are types of binary trees and other trees such as the infinitely branching trees of the Brouwer ordinals of the second and higher number classes.
The general schema does not only cover inductively defined types, but
also inductively defined families of types, such as the identity
relation. The above mentioned type
The schema for inductive types and families is a type-theoretic generalization of a schema for iterated inductive definitions in predicate logic (formulated in natural deduction) presented by Martin-Löf (1971b). This paper immediately preceded Martin-Löf’s first version of intuitionistic type theory. It is both conceptually and technically a forerunner to the development of the theory.
It is an essential feature of proof assistants such as Agda and Coq that it enables users to define their own inductive types and families by listing their introduction rules (the types of their constructors). This is much like in typed functional programming languages such as Haskell and the different dialects of ML. However, unlike in these programming languages the schema for inductive definitions in intuitionistic type theory enforces a restriction amounting to well-foundedness of the elements of the defined types.
4.6 Inductive-Recursive Definitions
We already mentioned that there are two main definition principles in intuitionistic type theory: the inductive definition of types (sets) and the (primitive, structural) definition of functions by recursion on the way the elements of such types are inductively generated. Usually, the inductive definition of a set comes first: the formation and introduction rules make no reference to the elimination rule. However, there are definitions in intuitionistic type theory for which this is not the case and we simultaneously inductively generate a type and a function from that type defined by structural recursion. Such definitions are simultaneously inductive-recursive.
The first example of such an inductive-recursive definition is an
alternative formulation à la Tarski of the universe of
small types. Above we presented the universe formulated à
la Russell, where there is no notational distinction between the
element
The elimination rule for the universe à la Tarski is:
This expresses that there is a function
We see that
and the corresponding equality rule is
Note that the introduction rule for
There are a number of other universe constructions which are defined inductive-recursively: universe hierarchies, superuniverses (Palmgren 1998; Rathjen, Griffor, and Palmgren 1998), and Mahlo universes (Setzer 2000). These universes are analogues of certain large cardinals in set theory: inaccessible, hyperinaccessible, and Mahlo cardinals.
Other examples of inductive-recursive definitions include an informal definition of computability predicates used by Martin-Löf in an early normalization proof of intuitionistic type theory (Martin-Löf 1998 [1972]). There are also many natural examples of “small” inductive-recursive definitions, where the recursively defined (decoding) function returns an element of a type rather than a type.
A large class of inductive-recursive definitions, including the above, can be captured by a general schema (Dybjer 2000, Dybjer and Setzer 1999) which extends the schema for inductive definitions mentioned above. As shown by Setzer, intuitionistic type theory with this class of inductive-recursive definitions is very strong proof-theoretically (Dybjer and Setzer 2003). However, as proposed in recent unpublished work by Setzer, it is possible to increase the strength of the theory even further and define universes such as an autonomous Mahlo universe which are analogues of even larger cardinals.
5. Meaning Explanations
The consistency of intuitionistic type theory relative to set theory
can be proved by model constructions. Perhaps the simplest method is
an interpretation whereby each type-theoretic concept is given its
corresponding set-theoretic meaning, as outlined in
section 2.3.
For example the type of functions
Alternatives are realizability models, and for intensional type theory, a model of terms in normal forms. The latter can also be used for proving decidability of the judgments of the theory.
Mathematical models only prove consistency relative to classical set theory (or whatever other meta-theory we are using). Is it possible to be convinced about the consistency of the theory in a more direct way, so called simple minded consistency (Martin-Löf 1984)? In fact, is there a way to explain what it means for a judgment to be correct in a direct pre-mathematical way? And given that we know what the judgments mean can we then be convinced that the inference rules of the theory are valid? An answer to this problem was proposed by Martin-Löf in 1979 in the paper “Constructive Mathematics and Computer Programming” (Martin-Löf 1982) and elaborated later on in numerous lectures and notes, see for example, Martin-Löf (1984, 1987). These meaning explanations for intuitionistic type theory are also referred to as the direct semantics, intuitive semantics, informal semantics, standard semantics, or the syntactico-semantical approach to meaning theory.
This meaning theory follows the Wittgensteinian meaning-as-use
tradition. The meaning is based on rules for building objects
(introduction rules) of types and computation rules (elimination
rules) for computing with these objects. A difference from much of the
Wittgensteinian tradition is that also higher order types like
To explain the meaning of a judgment we must first know how the terms in the judgment are computed to canonical form. Then the formation rules explain how correct canonical types are built and the introduction rules explain how correct canonical objects of such canonical types are built. We quote (Martin-Löf 1982):
A canonical typeis defined by prescribing how a canonical object of type is formed as well as how two equal canonical objects of type are formed. There is no limitation on this prescription except that the relation of equality which it defines between canonical objects of type must be reflexive, symmetric and transitive.
In other words, a canonical type is equipped with an equivalence relation on the canonical objects. Below we shall give a simplified form of the meaning explanations, where this equivalence relation is extensional identity of objects.
In spite of the pre-mathematical nature of this meaning theory, its technical aspects can be captured as a mathematical model construction similar to Kleene’s realizability interpretation of intuitionistic logic, see the next section. The realizers here are the terms of type theory rather than the number realizers used by Kleene.
5.1 Computation to Canonical Form
The meaning of a judgment is explained in terms of the computation of the types and terms in the judgment. These computations stop when a canonical form is reached. By canonical form we mean a term where the outermost form is a constructor (introduction form). These are the canonical forms used in lazy functional programming (for example in the Haskell language).
For the purpose of illustration we consider meaning explanations only
for three type formers:
The canonical terms are generated by the following grammar:
where
To explain how terms are computed to canonical form, we introduce the
relation
in addition to the rule
stating that a canonical term has itself as value.
5.2 The Meaning of Categorical Judgments
A categorical judgment is a judgment where the context is empty and there are no free variables.
The meaning of the categorical judgment
-
, -
, -
and furthermore that and .
The meaning of the categorical judgment
-
and either or and , -
and either or where furthermore and , -
and and .
The meaning of the categorical judgment
-
and , -
and , -
and and furthermore that and .
The meaning of the categorical judgment
It is a tacit assumption of the meaning explanations that the repeated
computations of canonical forms is well-founded. For example, a
natural number is the result of finitely many computations of the
successor function
5.3 The Meaning of Hypothetical Judgments
According to Martin-Löf (1982) the meaning of a hypothetical judgment is reduced to the meaning of the categorical judgments by substituting the closed terms of appropriate types for the free variables. For example, the meaning of
is that the categorical judgment
is valid whenever the categorical judgments
are valid.
6. Mathematical Models
6.1 Categorical Models
6.1.1 Hyperdoctrines
Curry’s correspondence between propositions and types was
extended to predicate logic in the late 1960s by Howard (1980) and de
Bruijn (1970). At around the same time Lawvere developed related ideas
in categorical logic. In particular he proposed the notion of a
hyperdoctrine (Lawvere 1970) as a categorical model of
(typed) predicate logic. A hyperdoctrine is an indexed category
6.1.2 Contextual categories, categories with attributes, and categories with families
Lawvere’s definition of hyperdoctrines preceded intuitionistic type theory but did not go all the way to identifying propositions and types. Nevertheless Lawvere influenced Scott’s (1970) work on constructive validity, a somewhat preliminary precursor of intuitionistic type theory. After Martin-Löf (1998 [1972]) had presented a more definite formulation of the theory, the first work on categorical models was presented by Cartmell in 1978 with his notions of category with attributes and contextual category (Cartmell 1986). However, we will not define these structures here but instead the closely related categories with families (Dybjer 1996) which are formulated so that they directly model a variable-free version of a formulation of intuitionistic type theory with explicit substitutions.
A category with families is a functor
Categories with families are algebraic structures which model the
general rules of dependent type theory, those which come before the
rules for specific type formers, such as
6.1.3 Locally cartesian closed categories
From a categorical perspective the above-mentioned structures may
appear somewhat special and ad hoc. A more regular structure which
gives rise to models of intuitionistic type theory are the locally
cartesian closed categories. These are categories with a terminal
object, where each slice category is cartesian closed. It can be shown
that the pullback functor has a left and a right adjoint, representing
6.2 Set-Theoretic Models
Intuitionistic type theory is a possible framework for constructive
mathematics in Bishop’s sense. Such constructive mathematics is
compatible with classical mathematics: a constructive proof in
Bishop’s sense can directly be understood as a proof in
classical logic. A formal way to understand this is by constructing a
set-theoretic model of intuitionistic type theory, where each concept
of type theory is interpreted as the corresponding concept in
Zermelo-Fraenkel Set Theory. For example, a type is interpreted as a
set, and the type of functions in
It can be shown that the interpretation outlined above can be carried out in Aczel’s constructive set theory CZF. Hence it does not depend on classical logic or impredicative features of set theory.
6.3 Realizability Models
The set-theoretic model can be criticized on the grounds that it models the type of functions as the set of all set-theoretic functions, in spite of the fact that a function in type theory is always computable, whereas a set-theoretic function may not be.
To remedy this problem one can instead construct a realizability model whereby one starts with a set of realizers. One can here follow Kleene’s numerical realizability closely where functions are realized by codes for Turing machines. Or alternatively, one can let realizers be terms in a lambda calculus or combinatory logic possibly extended with appropriate constants. Types are then represented by sets of realizers, or often as partial equivalence relations on the set of realizers. A partial equivalence relation is a convenient way to represent a type with a notion of “equality” on it.
There are many variations on the theme of realizability model. Some such models tacitly assume set theory as the metatheory (Aczel 1980, Beeson 1985), whereas others explictly assume a constructive metatheory (Smith 1984).
Realizability models are also models of the extensional version of intuitionistic type theory (Martin-Löf 1982) which will be presented in section 7.1 below.
6.4 Model of Normal Forms and Type-Checking
In intuitionistic type theory each type and each well-typed term has a
normal form. A consequence of this normal form property is that all
the judgments are decidable: for example, given a correct context
The correctness of the normal form property can be expressed as a model of normal forms, where each context, type, and term are interpreted as their respective normal forms.
6.5 Setoids, Groupoids, and Infinity-Groupoids
6.5.1 Setoid model
As explained in the entry on constructive mathematics, when doing mathematics in type theory, one often needs to equip types with an equivalence relation, the combination being known as a setoid. Mappings are then functions that respect those equivalence relations. For example, we can define the real numbers as the setoid of Cauchy sequences with equi-convergence as the equivalence relation. However, developing mathematics using explicit setoids is inconvenient, since one must always check that equivalence relations are preserved by functions. It is therefore desirable to introduce a quotient type former, which maps a setoid to a type in such a way that equivalent elements are identified and functions automatically preserve the equivalence relation. Now, quotienting is not among the basic type formers of intuitionistic type theory, the rules of which are justified by the meaning explanations above. Instead we rely on the fact that setoids form a model of intuitionistic type theory with quotient formation (Hofmann 1995, Altenkirch et al 2019, Palmgren 2022). In this model, functions are required to preserve equivalence relations.
6.5.2 Groupoid model
A groupoid is a category where all arrows are isomorphisms. Setoids
correspond to groupoids with at most one arrow between any two
objects: the elements of the underlying type of the setoid correspond
to the objects of the groupoid and the equivalence relation is
isomorphism of objects. Groupoids form a model of intuitionistic type
theory with a universe
has an inverse. This is a first step towards Voevodsky’s univalence axiom. The groupoid model also provides a first connection with homotopy theory. Objects correspond to points of a topological space and arrows correspond to paths between points. There may be several paths between two points, but paths are identified up to homotopy, that is, up to continuous tranformation of paths.
6.5.3 Infinity groupoid models
The identity type former
is an equivalence. Equivalence (
The axiom of univalence was originally justified by Voevodsky’s simplical set model. This model is however not constructive and (Bezem, Coquand and Huber 2014 [2013]) has instead proposed a model in Kan cubical sets. The construction of models that are both constructive and serve the purposes of homotopy theory is currently an active area of research.
7. Variants of the Theory
7.1 Extensional Type Theory
In extensional intuitionistic type theory (Martin-Löf 1982) the
rules of
The first causes the distinction between propositional and judgmental equality to disappear. The second forces identity proofs to be unique. Unlike the rules for the intensional identity type former, the rules for extensional identity types do not fit into the schema for inductively defined types mentioned above.
These rules are however justified by the meaning explanations in Martin-Löf (1982). This is because the categorical judgment
is valid iff
However, these rules make it possible to define terms without normal forms. Since the type-checking algorithm relies on the computation of normal forms of types, it no longer works for extensional type theory, see (Castellan, Clairambault, and Dybjer 2015).
On the other hand, certain constructions which are not available in intensional type theory are possible in extensional type theory. For example, function extensionality
is a theorem.
Another example is that
7.2 Univalent Foundations and Homotopy Type Theory
Univalent foundations refer to Voevodsky’s programme for a new
foundation of mathematics based on intuitionistic type theory with the
univalence axiom as explained in section 6.5.3 about infinity
groupoids. Voevodsky introduced the notion of h-level of a type. One
defines an h-proposition as a type where all elements (proofs) are
identified. Furthermore, one defines an h-set as a type A where the
identity type
Although univalent foundations concern preservation of mathematical
structure in general, applications within homotopy theory are
particularly actively investigated. Intensional type theory extended
with the univalence axiom and so called higher inductive types is
therefore also called “homotopy type theory”. We refer to
the entry on
type theory
and the book on Homotopy type theory (The Univalent Foundations
Program, 2013) for details.
7.3 Partial and Non-Standard Type Theory
Intuitionistic type theory is not intended to model Brouwer’s
notion of free choice sequence, although lawlike choice
sequences can be modelled as functions from
7.4 Impredicative Type Theory
The inconsistent version of intuitionistic type theory of
Martin-Löf (1971a) was based on the strongly impredicative axiom
that there is a type of all types. However, (Coquand and Huet 1988)
showed with their calculus of constructions, that there is a powerful
impredicative but consistent version of type theory. In this theory
the universe
This rule is more general than the rule for constructing small
cartesian products of families of small types in intuitionistic type
theory, since we can now quantify over arbitrary types
The motivation for this theory was that inductively defined types and families of types become definable in terms of impredicative quantification. For example, the type of natural numbers can be defined as the type of Church numerals:
This is an impredicative definition, since it is a small type which is constructed by quantification over all small types. Similarly we can define an identity type by impredicative quantification:
This is Leibniz’ definition of equality:
Unlike in intuitionistic type theory, the function type in impredicative type cannot be interpreted set-theoretically in a straightfoward way, see (Reynolds 1984).
7.5 Proof Assistants
In 1979 Martin-Löf wrote the paper “Constructive Mathematics and Computer Programming” where he explained that intuitionistic type theory is a programming language which can also be used as a formal foundation for constructive mathematics. Shortly after that, interactive proof systems which help the user to derive valid judgments in the theory, so called proof assistants, were developed.
One of the first systems was the NuPrl system (PRL Group 1986), which is based on an extensional type theory similar to (Martin-Löf 1982).
Systems based on versions of intensional type theory go back to the type-checker for the impredicative calculus of constructions which was written around 1984 by Coquand and Huet. This led to the Coq system, which is based on the calculus of inductive constructions (Paulin-Mohring 1993), a theory which extends the calculus of construction with primitive inductive types and families. The encodings of the pure calculus of constructions were found to be inconvenient, since the full elimination rules could not be derived and instead had to be postulated. We also remark that the calculus of inductive constructions has a subsystem, the predicative calculus of inductive constructions, which follows the principles of Martin-Löf’s intuitionistic type theory.
Agda is another proof assistant which is based on the logical framework formulation of intuitionistic type theory, but adds numerous features inspired by practical programming languages (Norell 2008). It is an intensional theory with decidable judgments and a type-checker similar to Coq’s. However, in contrast to Coq it is based on Martin-Löf’s predicative intuitionistic type theory.
There are several other systems based either on the calculus of constructions (Lego, Matita, Lean) or on intuitionistic type theory (Epigram, Idris); see (Pollack 1994; Asperti et al. 2011; de Moura et al. 2015; McBride and McKinna 2004; Brady 2011).
Bibliography
- Aczel, Peter, 1978 [1977], “The type theoretic interpretation of constructive set theory”, in Logic Colloquium ’77, A. Macintyre, L. Pacholski, J. Paris (eds), Amsterdam-New York: North-Holland, pp. 55–66.
- –––, 1980, “Frege Structures and the Notions of Proposition, Truth and Set”, in The Kleene Symposium, J. Barwise, H.J. Keisler, K. Kunen (eds), Studies in Logic and the Foundations of Mathematics 101, Amsterdam: North-Holland, pp. 31–59.
- Altenkirch, Thorsten, Simon Boulier, Ambrus Kaposi, Nicolas Tabareau, 2019, “Setoid type theory – a syntactic translation”, MPC 2019 – 13th International Conference on Mathematics of Program Construction, Oct 2019, Porto, Portugal. pp.155–196.
- Asperti, Andrea, Wilmer Ricciotti, Claudio Sacerdoti Coen, and Enrico Tassi, 2011, “The Matita interactive theorem prover”, in Automated deduction: CADE-23, N. Bjørner and V. Sofronie-Stokkermans (eds), Lecture Notes in Computer Science (LNCS), vol. 6803, Heidelberg: Springer-Verlag, pp. 64–69.
- Awodey, Steve and Michael A. Warren, 2009, “Homotopy theoretic models of identity types”, Mathematical Proceedings of the Cambridge Philosophical Society, 146(1): 45–55.
- Beeson, Michael, 1985, Foundations of Constructive Mathematics, Springer-Verlag, Berlin.
- van den Berg, Benno and Richard Garner, 2011, “Types are
weak
-groupoids”, Proceedings of the London Mathematical Society, 102(2): 370–394. doi:10.1112/plms/pdq026 - Bezem, Marc, Thierry Coquand, and Simon Huber, 2014 [2013], “A model of type theory in cubical sets”, in 19th International Conference on Types for Proofs and Programs (TYPES 2013), Ralph Matthes and Aleksy Schubert (eds), Dagstuhl, Germany: Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik, pp. 107–128.
- Bishop, Errett, 1967, Foundations of constructive analysis, New York-Toronto, Ont.-London: McGraw-Hill Book Co..
- Brady, Edwin C., 2011, “IDRIS: systems programming meets full dependent types”, in Proceedings of the 5th ACM workshop on Programming Languages meets Program Verification (PLPV 2011), pp. 43–54, doi:10.1145/1929529.1929536.
- de Bruijn, Nicholas G., 1970, “The mathematical language AUTOMATH, its usage, and some of its extensions”, in Symposium on Automatic Demonstration (Versailles, 1968), Lecture Notes in Mathematics, Vol. 125, Berlin: Springer, pp. 29:61.
- Cartmell, John, 1986, “Generalised algebraic theories and contextual categories”, Annals of Pure and Applied Logic, 32: 209–243.
- Castellan, Simon, Pierre Clairambault, and Peter Dybjer, 2015: “Undecidability of Equality in the Free Locally Cartesian Closed Category”, TLCA pp 138-152.
- Clairambault, Pierre and Peter Dybjer, 2014, “The biequivalence of locally cartesian closed categories and Martin-Löf type theories”, Mathematical Structures in Computer Science, 24(6). doi:10.1017/S0960129513000881
- Coquand, Thierry and Gérard Huet, 1988, “The calculus of constructions”, Information and Computation, 76(2–3): 95–120, doi:10.1016/0890-5401(88)90005-3.
- Curien, Pierre-Louis, 1993, “Substitution up to isomorphism”, Fundamentae Informatica, 19: 51–85.
- Curry, Haskell B. and Robert Feys, 1958, Combinatory Logic, Amsterdam: North-Holland.
- Dybjer, Peter, 1991, “Inductive sets and families in Martin-Löf’s type theory and their set-theoretic semantics”, in Logical Frameworks, Gérard Huet and Gordon Plotkin (eds), Cambridge: Cambridge University Press, pp. 280–306 .
- –––, 1996, “Internal Type Theory”, in Types for Proofs and Programs, TYPES '95, Stefano Berardi and Mario Coppo (eds), Lecture Notes in Computer Science Volume (LNCS), vol. 1158, Heidelberg: Springer-Verlag, pp. 120–134.
- –––, 1997, “Representing inductively defined sets by wellorderings in Martin-Löf’s type theory”, Theoretical Computer Science, 176: 329–335.
- –––, 2000, “A general formulation of simultaneous inductive-recursive definitions in type theory”, Journal of Symbolic Logic, 65: 525–549.
- Dybjer, Peter and Anton Setzer, 1999, “A finite axiomatization of inductive-recursive definitions”, Proceedings of Typed Lambda Calculi and Applications: 4th International Conference (Lecture Notes in Computer Science: 1581), Dordrecht: Springer Verlag.
- –––, 2003, “Induction-recursion and initial algebras”, Annals of Pure and Applied Logic, 124: 1–47.
- Gonthier, Georges, 2008, “Formal proof of the four-color theorem”, Notices American Mathematical Society, 55: 1382–1393.
- Hofmann, Martin, 1994, “Interpretation of Type Theory in Locally Cartesian Closed Categories”, in Proceedings of CSL, Lecture Notes in Computer Science (LNCS), Berlin: Springer-Verlag. doi:10.1007/BFb0022273
- –––, 1995, Extensional concepts in intensional type theory, Ph.D. Thesis, University of Edinburgh.
- –––, 1997, “Syntax and semantics of dependent types”, in Semantics and logics of computation, Andrew M. Pitts and P. Dybjer (eds), Publications of the Newton Institure (No.14), Cambridge: Cambridge University Press, pp. 79–130.
- Hofmann, Martin and Thomas Streicher, 1998, “The groupoid interpretation of type theory”, in Sambin and Smith 1998: 83–111.
- Howard, William A., 1980, “The Formulae-as-Types Notion of Construction”, in To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, J.P. Seldin and J.R. Hindley (eds), Academic Press, pp. 479–490.
- Jacobs, Bart, 1999, Categorical logic and type theory, Studies in Logic and the Foundations of Mathematics 141, Amsterdam: North-Holland.
- Lawvere, F. William, 1970, “Equality in Hyperdoctrines and Comprehension Schema as an Adjoint Functor”, in Proceedings of the American Mathematical Society Symposium on Pure Mathematics XVII, pp. 1–14.
- Leroy, Xavier, 2009, “Formal verification of a realistic compiler”, Communications of the ACM, 52(7):107–115.
- Lumsdaine, Peter LeFanu, 2010, “Weak omega-categories from intensional type theory”, Logical Methods in Computer Science, 6(3), doi:10.2168/LMCS-6(3:24)2010, [LeFanu Lumsdaine 2010 available online]
- Martin-Löf, Per, 1971a, An intuitionistic theory of types, unpublished preprint.
- –––, 1971b, “Hauptsatz for the intuitionistic theory of iterated inductive definitions”, in Proceedings of the 2nd Scandinavian logic symposium, J.E. Fenstad (ed.), Amsterdam: North-Holland, pp. 179–216.
- –––, 1975, “An intuitionistic theory of types: Predicative part”, in Logic colloquium ’73, H.E. Rose and J. Shepherdson (eds), Amsterdam: North-Holland, pp. 73–118.
- –––, 1982, “Constructive mathematics and computer programming”, in Logic, methodology and philosophy of science VI, Proceedings of the 1979 international congress at Hannover, Germany, L.J. Cohen, J. Los, H. Pfeiffer and K.-P. Podewski (eds). Amsterdam: North- Holland Publishing Company, pp. 153–175.
- –––, 1984, Intuitionistic type theory: Notes by Giovanni Sambin of a series of lectures given in Padua, June 1980, Napoli: Bibliopolis.
- –––, 1986, “Unifying Scott’s theory of domains for denotational semantics and intuitionistic type theory (abstract)”, in Atti del Congresso ’Logica e Filosofia della Scienza, oggi’, San Gimignano, 7–11 December 1983, Vol. I – Logica, CLUEB, Bologna.
- –––, 1987, “Truth of a proposition, evidence of a judgment, validity of a proof”, Synthese, 73: 407–420.
- –––, 1990, “Mathematics of infinity”, in COLOG-88, P. Martin-Löf and G. Mints (eds), Berlin: Springer, pp. 146–197.
- –––, 1994, “Analytic and synthetic judgments in type theory”, in Kant and contemporary epistemology, P. Parrini (ed.), Dordrecht: Kluwer, pp. 87–99.
- –––, 1996, “On the meanings of the logical constants and the justifications of the logical laws”, Nordic Journal of Philosophical Logic, 1(1): 11–60.
- –––, 1998 [1972], “An intuitionistic theory of types”, in Sambin and Smith 1998: 127–172. (Written in 1972 but unpublished.)
- –––, 2009, “100 years of Zermelo’s Axiom of Choice: What was the problem with it?” in Logicism, intuitionism, and formalism: What has become of them?, S. Lindström, E. Palmgren, K. Segerberg, and V. Stoltenberg-Hansen (eds), Dordrecht: Springer, pp. 209–219.
- McBride, Conor and James McKinna, 2004, “The view from the left”, Journal of Functional Programming, 14: 69–111.
- de Moura, Leonardo, Soonho Kong, Jeremy Avigad, Floris van Doorn and Jakob von Raumer, 2015, “The Lean Theorem Prover”, in 25th International Conference on Automated Deduction (CADE-25), Berlin, Germany. [de Moura et al. 2015 available online]
- Nordström, Bengt, Kent Petersson, and Jan M. Smith, 1990, Programming in Martin-Löf’s type theory. An introduction, New York: Oxford University Press.
- Norell, Ulf, 2008, “Dependently Typed Programming in Agda”, in Proceedings of the 6th international conference on Advanced Functional Programming, pp. 230–266.
- Palmgren, Erik, 1991, On Fixed Point Operators, Inductive Definitions and Universes in Martin-Löf Type Theory, Doctoral dissertation in mathematics, Uppsala University.
- –––, 1998, “On universes in type theory”, in Sambin and Smith 1998: 191-204.
- –––, 2022, “From type theory to setoids and back”, Mathematical Structures in Computer Science, 32(10): 1283–1312.
- Palmgren, Erik and Viggo Stoltenberg-Hansen, 1990 “Domain interpretations of Martin-Löf’s partial type theory”, Annals of Pure and Applied Logic, 48: 135–196.
- Paulin-Mohring, Christine, 1993, “Inductive Definitions in the system Coq: Rules and Properties”, in Proceedings of the International Conference on Typed Lambda Calculi and Applications, TLCA '93, Marc Bezem and Jan F. Groote (eds), Lecture Notes in Computer Science (LNCS), Springer, pp. 328–345.
- Pollack, Randy, 1994, The theory of LEGO, PhD Thesis, Edinburgh.
- PRL Group, 1986, Implementing Mathematics with the Nuprl Proof Development System, Engelwood Cliffs, NJ: Prentice-Hall.
- Ranta, Aarne, 1994, Type-theoretical Grammar, Oxford: Oxford University Press.
- Rathjen, Michael, Edward R. Griffor, and Erik Palmgren, 1998, “Inaccessibility in constructive set theory and type theory”, Annals of Pure and Applied Logic, 94: 181–200.
- Reynolds, John C., 1984, “Polymorphism is not Set-Theoretic”, in Semantics of Data Types: International Symposium Sophia-Antipolis, France, June 27–29, 1984 Proceedings, Giles Kahn, David B. MacQueen, and Gordon Plotkin (eds), Lecture Notes in Computer Science (LNCS), vol. 173, Springer, pp. 145–156.
- Sambin, G. and Jan M. Smith (eds), 1998, Twenty-five years of constructive type theory, Oxford: Clarendon Press.
- Scott, Dana S., 1970, “Constructive Validity”, in Symposium on Automatics Demonstration (Versailles, December 1968, M. Laudet, D. Lacombe, L. Nolin, and M. Schützenberg (eds), Lecture Notes in Mathematics, vol. 125, Springer, pp. 237–275.
- Seely, Robert A.G., 1984, “Locally cartesian closed categories and type theory”, Mathematical Proceedings of the Cambridge Philosophical Society, 95: 33–48.
- Setzer, Anton, 1998, “Well-ordering proofs for Martin-Löf type theory”, Annals of Pure and Applied Logic, 92: 113–159.
- –––, 2000, “Extending Martin-Löf type theory by one Mahlo-universe”, Archive for Mathematical Logic, 39: 155–181.
- Smith, Jan, 1984, “An interpretation of Martin-Löf’s type theory in a type-free theory of propositions”, Journal of Symbolic Logic, 49: 730–753.
- Sundholm, Göran, 2012, “On the Philosophical Work of Per Martin-Löf”, in P. Dybjer, S. Lindström, E. Palmgren, and G. Sundholm (eds), Epistemology versus Ontology: Essays on the Philosophy and Foundations of Mathematics in Honour of Per Martin-Löf, Springer, pp. xxiii–xxiv.
- The Univalent Foundations Program, 2013, Homotopy Type Theory: Univalent Foundations of Mathematics, Institute for Advanced Study, Princeton. [The Univalent Foundations Program 2013 available online].
Academic Tools
How to cite this entry. Preview the PDF version of this entry at the Friends of the SEP Society. Look up topics and thinkers related to this entry at the Internet Philosophy Ontology Project (InPhO). Enhanced bibliography for this entry at PhilPapers, with links to its database.