1 The Univalent Foundations project

The Univalent Foundations (UF) project is an approach to the foundations of mathematics currently under rapid development. It entails a major change both in philosophical motivation and form, ultimately taking its main inspiration from geometry rather than grammar or traditional logic. Michael Harris—himself working in the rather different field of number theory, and not being a fan of “Foundations” for mathematics, despite his otherwise interest in mathematical–philosophical questions—still makes bold claims about its philosophical relevance:

It’s impossible to overstate the consequences for philosophy, especially the philosophy of Mathematics, if Voevodsky’s proposed new Foundations were adopted. By replacing the principle of identity by a more flexible account modeled on space, the new approach poses a clear challenge, on which I cannot elaborate here, to the philosophy underlying “identity politics”; it also undermines the case for analytic philosophy to seek guidance in the metaphysics of set theory, as in W.V.O Quine’s slogan “to be is to be the value of a variable.” (Harris 2015, p. 219)

This paper constitutes a first attempt at a philosophical analysis of some of the concepts underlying this framework, and of their possible uses in philosophy. As such, it is to be seen as an orienting preliminary work, outlining a number of problems and approaches rather than an attempt at coming to any firm conclusions. It is my hope, however, that the potential importance Univalent Foundations, and the comparably small amount of work on its philosophy which has so far been done, still warrant its publication.

An example of the difference in approach between the usual foundations and UF is that the latter is based on type theory—more precisely Martin-Löf’s intensional intuitionistic type theory (Martin-Löf 1998)—rather than predicate logic and set theory. Martin-Löf (M-L) type theory is a very versatile framework, capable of unifying logic, computation and mathematics. UF relies on a certain toplogical interpretation of this type theory, which is known as Homotopy Type Theory (HoTT).

While predicate logic makes a distinction between terms and formulae, with the former combined by functions and the latter by connectives and quantifiers, M-L type theory’s main distinction is between terms and types, which on the traditional reading are a version of sets. The connection to assertion is made through judgments, which are either of the form

$$\begin{aligned} \Gamma \vdash a \mathrel {\; : \;}A \end{aligned}$$

which means that a is of the type A, given a context \(\Gamma \), which is a sequence of assignments of types to terms, or

$$\begin{aligned} \Gamma \vdash a \equiv b \mathrel {\; : \;}X \end{aligned}$$

which means that a and b are definitionally equal objects of type X in the context \(\Gamma \).Footnote 1 As we will see later, however, the meaning of this “definitionally” is not entirely trivial to spell out, so we will usually employ the alternative term “judgmentally equal”. Unlike sentences in FOL, judgments cannot be combined in any way. They appear as premisses or conclusions in inference rules.

Type theories usually contain many rules for introducing new types given others. Of particular significance are the function types \(A \rightarrow B\), whose elements are the functions from A to B. A function, being an element of a type, is thus also a term. Another rule, of particular importance to HoTT, is one allowing the introduction of universe types. This means that we assume the existence of a sequence of primitive types \(\mathcal {U}_0, \mathcal {U}_1, \mathcal {U}_2, \ldots \), such that \(\mathcal {U}_0\) is the type of all the “usual” types, \(\mathcal {U}_1\) all those of \(\mathcal {U}_0\) as well as those (such as \(\mathcal {U}_0\) itself) which are too big to be in \(\mathcal {U}_0\), etc. We will usually follow custom in not writing out the indices for these, but instead rely on typical ambiguity to assign them on a case-by-case basis.

These are properties that are common to several contemporary type theories. The main addition made by M-L type theory is that of dependent types and functions. A dependent type (or type family) P on the type X is an assignment of a type P(x) to each element \(x \mathrel {\; : \;}X\), i.e. a function \(P: X \rightarrow \mathcal {U}\). A dependent function type, written as

$$\begin{aligned} \prod \limits _{x\mathrel {\; : \;}X} \; P(x) \end{aligned}$$

is the type of all functions from the type X to type P(x), for any \(x \mathrel {\; : \;}X\), or in other words the functions that assign some element of the dependent type P(x) to each element of x. The elements of such a type are referred to as dependent functions. To illustrate, we have drawn one such function \(f: \prod \nolimits _{x \mathrel {\; : \;}X} \; P(x)\) in Fig. 1.

Fig. 1
figure 1

A dependent function \(f \mathrel {\; : \;}\prod \nolimits _{x\mathrel {\; : \;}X} \; P(x)\)

In terms of set theory, a dependent type on a set X would be a function P from X to the class V of all sets, i.e. an assignment of a set to each element of C.Footnote 2 A dependent function would then be a set-theoretic function \(f: X \rightarrow V\) such that

$$\begin{aligned} f(x) \in P(x) \end{aligned}$$

for all \(x \in X\), i.e. a choice function for the set P[X]. A dependent function type \(f: \prod \nolimits _{x \mathrel {\; : \;}X} \; P(x)\) is non-empty iff the type family P it is defined on assigns a non-empty type to every element of X.

Another example of a dependent type is the dependent pair type

$$\begin{aligned} \sum \limits _{x\mathrel {\; : \;}X} \; P(x) \end{aligned}$$

In set theory, a dependent pair corresponds to an ordered pair \(\langle x, y\rangle \) where \(x \in X\) and \(y \in P(x)\), and the dependent pair type to a disjoint union. In the logical (proof-theoretical) interpretation we will describe later in this section, dependent pairs are also used to model the existential quantifier.

In many type theories, it is common to have a specific type \(\Omega \) of truth values (or propositions, as they are sometimes called), with at least two elements \(\top \) and \(\bot \) representing truth and falsity. A predicate P on the elements of the type X is then interpretable as a function \(f_P: X \rightarrow \Omega \) such that \(f_P(x) = \top \) iff P(x) holds, for \(x \in X\). M-L type theory, in contrast, does not assume such a type, but instead relies on the Curry–Howard correspondence, or formulae-as-types interpretation (Howard 1980), according to which any type can be interpreted as a proposition. One way of doing this is to interpret a proposition X as the type of proofs that X. Like in the Brouwer–Heyting–Kolmogorov interpretation of intuitionistic logic, we can then say that a proposition is true iff it has some proof, i.e. is non-empty as a type.Footnote 3

To illustrate, it is useful to consider another common type-forming operator, namely the product type \(A \times B\) of A and B, which is definable in terms of the dependent function type. In the set-theoretic interpretation, such a type is exactly the Cartesian product of the sets A and B. But just as such a product equals \(\emptyset \) iff A or B are empty, we also have that \(A \times B = \mathsf {0}\), where \(\mathsf {0}\) is the empty type, iff either A or B are empty. As an empty type is a false proposition, we can therefore see that \(A \times B\), when interpreted this way, is true in exactly the same circumstances as the conjunction of the propositions A and B.Footnote 4

The Curry–Howard correspondence can also be extended in order to deal with correlates of open formulae rather than sentences. A property P, which can be instantiated by the elements of the type X, can be interpreted as a dependent type \(P: X \rightarrow \mathcal {U}\) which assigns the type P(x) of all proofs that x has property P to each element \(x \mathrel {\; : \;}X\). Again, if we take a proposition to be true iff it has a proof, P(x) will be a non-empty type iff x has the property P. Since a dependent function type \(\prod \nolimits _{x \mathrel {\; : \;}X} \; P(x)\) is non-empty iff P(x) is non-empty for each \(x \mathrel {\; : \;}X\), it follows that \(\prod \nolimits _{x \mathrel {\; : \;}X} \; P(x)\) works as the proposition for all x of type X, P(x).

There is one consequence of this approach which is particularly noteworthy: while, in classical logic, P(x) is simply true or false of an object x, and in intuitionistic logic, P(x) is more generally assigned an element in a Heyting algebra, in intensional M-L type theory we always need a specific element of P(x) to express P(x)’s truth, and thus more information. Although intuitionistic logic is also sometimes characterised as requiring specific proofs, e.g. in taking \(\varphi \vee \psi \) to be true only if a proof exists either for \(\varphi \) or for \(\psi \), it does not keep track of the identities of such proofs except insofar as they count as proofs of the same sentences. Intensional M-L type theory, in contrast, provides the possibility of distinguishing between individual proofs even of the same sentences. A type theory of this kind is called proof relevant (Univalent Foundations Program 2013, p. 8).

2 The varieties of identity

It seems to be a common assumption in analytic (but of course not continental) philosophy that identity is a fairly simple concept. A forerunner here is Frege, who in the afterword to the second volume of the Grundgesetze—the one in which he reacts to Russell’s paradox—argues against taking classes to be improper objects since this would require them to have their own notion of identity. Identity, he says, “is a relation given in so determinate a way that it is inconceivable that different kinds of it could occur” (2013, p. 254). More recently, we find David Lewis expressing quite similar feelings:

Identity is utterly simple and unproblematic. Everything is identical to itself; nothing is ever identical to anything except itself. There is never any problem about what makes something identical to itself; nothing can ever fail to be. (1986, pp. 192–193)

Making a distinction with the notion of reference, McGinn rather matter-of-factly writes in his book Logical Properties that “one could not write a good book entitled The Varieties of Identity” (2000, p. 1).

But such a view can only be defended if one has already decided that the concept of identity of, say, classical predicate logic, is the correct one, in which case the simplicity and lack of problems that Lewis alludes to naturally spring from the fact that a decision has already been made, even if unconsciously. As soon as we leave classical logic’s safe confines, the conceptual landscape opes up. In the classical presentation of his type theory Martin-Löf (1984) distinguishes four forms of identityFootnote 5:

(i):

The definitional equality \(a \mathrel {\equiv _{df.}}b\). This is “the equivalence relation generated by abbreviatory definitions, changes of bound variables and the principle of substituting equals for equals” (Martin-Löf 1984, p. 31). It is a purely syntactic notion, and is therefore not strictly the same as the identity judgment \(\vdash a \equiv b \mathrel {\; : \;}X\), which—to start with—also makes reference to a specific type. In Martin-Löf (1984), it is the only form of identity that the author holds to be intensional.

(ii):

The equality of elements \(a \equiv b \mathrel {\; : \;}X\), where X is a type of which a and b are elements. This is perhaps the version most like classical identity in that it allows replacing equals for equals arbitrarily, subject only to type restrictions. This is what we have referred to as the judgmental equality.

(iii):

The equality of types \(X \equiv Y\), which consists in them having judgmentally equal elements.

(iv):

The identity type family \(\mathop {\mathsf {Id}}_C(x, y)\) through which every pair of elements ab of C is assigned a specific type \(\mathop {\mathsf {Id}}_C(a, b)\). Using the Curry–Howard correspondence, the elements of this type are interpretable as proofs of the proposition \(a = b\), and this form of identity is therefore also referred to as propositional. Furthermore, if \(a \mathrel {\; : \;}C\), there is a postulated element \(\mathop {\mathsf {refl}}_C(a)\) of \(\mathop {\mathsf {Id}}_C(a, a)\) called a’s reflexivity proof, which corresponds to a canonical proof that \(a = a\); e.g. the one obtained by a single application of equality introduction.

In extensional M-L type theory the existence of an element of \(\mathop {\mathsf {Id}}_C(a, b)\) is postulated to imply that \(a \equiv b \mathrel {\; : \;}C\); this is sometimes referred to as the equality reflection rule. If added as an extra postulate to non-extensional M-L type theory the equality reflection rule entails that if \(p \mathrel {\; : \;}\mathop {\mathsf {Id}}_C(a, b)\), then \(p \equiv \mathop {\mathsf {refl}}_C(a) \mathrel {\; : \;}\mathop {\mathsf {Id}}_C(a, a)\), so the reflexivity proof of a (or, equivalently, b) is the only proof of the propositional equality of a and b that we have (Univalent Foundations Program 2013, p. 104). We therefore say that extensional type theory has a uniqueness of identities.

In the intensional version [as presented in e.g. Martin-Löf (1998)] the non-emptiness of \(\mathop {\mathsf {Id}}_C(a, b)\) is strictly weaker than \(a \equiv b \in C\), and instead motivates a type of induction principle. Very informally, this principle allows us to transfer the structure of one type which is a value of a dependent function \(\prod \nolimits _{x \mathrel {\; : \;}X} \; P(x)\) for an argument a, to the type which is a value of any argument b which is propositionally equal to a. Formally it is rather complex, but for our present cases it suffices to consider a consequence of it called the indiscernibility of identicals (Univalent Foundations Program 2013, pp. 44–45):Footnote 6

figure a

Here, \(\mathsf {ind_=}\) is a specific function that assigns each identity between objects xy of type A a function from C(x) to C(y). Remembering the interpretation of type families on A as properties of A’s elements (i.e. C(x) contains proofs that x has property C) we can see that this rule guarantees that if we have some proof that C(x) holds as well as a proof \(p\mathrel {\; : \;}\mathop {\mathsf {Id}}_A(x, y)\), then we can construct a proof that C(y) as well by applying \(\mathsf {ind_=}\). Expressed in more traditional terms: if x has a property and x is identical to y, then y has that property as well.

HoTT assumes only the second and the fourth of Martin-Löf’s forms of identity as primitive, although arguably the second form also plays parts of the roles of the first and the third.

Since the existence of universes means that types and not only terms can be assigned types, Martin-Löf’s equality of types \(X \equiv Y\) is representable as \(X \equiv Y \mathrel {\; : \;}\mathcal {U}\). As HoTT also assumes inference rules that entail that \(a \mathrel {\; : \;}B\) follows from \(a \mathrel {\; : \;}A\) and \(A \equiv B \mathrel {\; : \;}\mathcal {U}\), the fact that A and B have judgmentally equal elements is still a consequence of their judgmental equality.

The question of propositional equality between types, i.e. their identity type families, is significantly more interesting. Any well-defined type X should specify rules for constructing an element of \(\mathop {\mathsf {Id}}_X(a, b)\). Under the Curry–Howard correspondence, this means that the introduction of X as a type also should make it clear what a proof of the propositional identity of elements of X. This is easy in an extensional type theory: since identities are unique, identity proofs are always identical to the reflexivity proof, so any identity proof is really a reflexivity proof, even if it may not look like one. In intensional type theory this approach is not possible, and the question arises as to what equality between its types really means. As we shall see in Sect. 4, it is here that univalent foundations makes one of its most significant contributions.

3 Some basic concepts of homotopy theory

In order to describe HoTT’s approach to equality it is necessary to go through a few mathematical preliminaries. We will try to keep these to a minimum in order to simplify as much as possible; for example, the admittedly crucial notion of fibration will hardly be discussed at all. We assume at the outset that the reader is familiar with general point-set topology, i.e. concepts such as topological spaces, continuous functions, homeomorphisms etc.

Several semantics exist for type theory, such as ones based on category theory or theories of computation. HoTT distinguishes itself by instead supplying a geometric (or more precisely, topological) semantics. The main notion used is homotopy. This is a central concept in algebraic topology, which the study the relationships between topological and algebraic structures—in particular groups and groupoids.Footnote 7

While the idea of one space being continuously transformed into another is central to all topology, homotopy theory adds consideration of how such transformations may themselves continuously transform into one another. This makes it a kind of “higher-order” version of topology. The central concept is that of a homotopy between two continuous functions \(f, g: X \rightarrow Y\), where X and Y are topological spaces. Formally, a homotopy \(\alpha \) from f to g is represented as a function \(\alpha : I \times X \rightarrow Y\), where I is the unit interval [0, 1] with its usual (interval) topology, such that the equations

$$\begin{aligned} \alpha (0, x)&= f(x) \\ \alpha (1, x)&= g(x) \end{aligned}$$

hold for all \(x \in X\). For an example, consider the four continuous mappings fghi of the space X into the two-component space Y depicted in Fig. 2.

Fig. 2
figure 2

Four continuous functions and a homotopy

Here \(\alpha \) is one of many homotopies from f to g. On the other hand, there are no homotopies from g to h, because a necessary condition for a homotopy \(g \rightarrow h\) to exist is that every point g(x) is path-connected to its corresponding point h(x), and no such paths can exist since g[X] and h[X] are in different components. That this condition is not sufficient can be seen by considering h and i: although we can draw a path from every point h(x) to its correlate i(x), we cannot do so in a continuous way. Graphically, the fact that h maps X around a hole in Y means that h[X] cannot be transformed into i[X] without tearing it apart, i.e. introducing discontinuities. This illustrates the fact that the existence or non-existence of homotopies is a global phenomenon, which is generally not possible to decide just by looking at individual points of a space one by one.

We write \(f \sim g\) and call f and g homotopic if there is some homotopy from f to g. It is easy to see that whenever there is a homotopy \(\alpha : f \rightarrow g\), we can get a homotopy \(\alpha ': g \rightarrow f\) going the other way by setting

$$\begin{aligned} \alpha '(t, x) = \alpha (1 - t, x) \end{aligned}$$

which simply reverses the direction. Likewise, given two homotopies \(\alpha : f \rightarrow g\) and \(\beta : g \rightarrow h\), we can define a composite \(\beta \circ \alpha : f \rightarrow h\) as

$$\begin{aligned} (\beta \circ \alpha )(t, x) = \left\{ \begin{array}{ll} \alpha (2t, x) &{} \text{ if } t < \; ^1\! /_2 \\ \beta (2t - 1, x) &{} \text{ if } t \geqslant \; ^1\! /_2 \end{array} \right. \end{aligned}$$

Since the constant function \(1_f: f \rightarrow f\) defined as \(f(t, x) = x\) is also a homotopy, it follows that \(\sim \) is an equivalence relation. Homotopy theory uses this equivalence to disregard the difference between homotopic functions and thereby obtain more powerful methods for proving theorems about spaces. While general topology does not differentiate between spaces that are stable under continuous transformation, homotopy theory does not differentiate between functions that are continuously deformable into one another either.

Fig. 3
figure 3

A homotopy equivalence

Formally, let \(\mathbf {hTop}\) be the category that has all toplogical spaces as objects and all homotopy classes of continuous functions between them. Thus \(\mathbf {hTop}\) has the same objects as the category \(\mathbf {Top}\) of topological spaces and continuous functions, but the arrows of \(\mathbf {hTop}\) are equivalence classes of those of \(\mathbf {Top}\). As is well known, the isomorphisms of \(\mathbf {Top}\) are precisely the homeomorphic functions. In \(\mathbf {hTop}\), the isomorphisms (i.e. those morphisms that have an inverse) come out as equivalence classes of so-called homotopy equivalences.

A continuous function \(f: X \rightarrow Y\) is a homotopy equivalence iff it has a homotopy inverse: a function \(f'\) such that \(f' \circ f \sim 1_X\) and \(f \circ f' \sim 1_Y\), where \(1_X\) and \(1_Y\) are the identity functions on X and Y, respectively.Footnote 8 See Fig. 3 for an example.

Any homeomorphism is a homotopy equivalence, but the converse does not hold: a disc is homotopy equivalent to a point, but since they have different cardinalities, they cannot be homeomorphic. Furthermore, the n-cube is homotopy equivalent to the \(n + 1\)-cube, but they are not homeomorphic because they have different topological dimensions. The class of all spaces homotopy equivalent to a space X is called its homotopy type.Footnote 9 Spaces that are homotopy equivalent to a point are called contractible.

From the fact that homotopies are themselves continuous functions it follows that their construction is iterable so that there can be homotopies between homotopies. For example, a homotopy \(\gamma \) between the homotopies \(\alpha \) and \(\beta \) above is a continuous function \(\gamma : I^2 \times X \rightarrow Y\) such that

$$\begin{aligned} \gamma (0, t, x)&= \alpha (t, x) \\ \gamma (1, t, x)&= \beta (t, x) \end{aligned}$$

where \(t \in I\) and \(x \in X\). A path in X with endpoints \(a, b \in X\) is a continuous function \(f: I \rightarrow X\) for which \(f(0) = a\) and \(f(1) = b\), or equivalently, a homotopy between two functions \(f, g: 1 \rightarrow X\), where 1 is a one-point topological space. Path homotopies are homotopies between paths, homotopies between such homotopies, etc. See Fig. 4, where fg are functions of \(t_1\) and the homotopy a function of \(t_1\) and \(t_2\).

Fig. 4
figure 4

A path homotopy

Fig. 5
figure 5

A non-trivial path \(f: a \rightarrow a\)

Since a path is also a homotopy between functions \(f, g: 1 \rightarrow X\), we can compose them like we compose all homotopies. While this does not give a composition that is associative (we generally have that \(h \circ (g \circ f) \ne (h \circ g) \circ f\)), replacing the paths from a to b by their homotopy classes restores associativity, and also ensures that all path-classes have inverses. This means that the homotopy classes of paths between the points of a topological space constitute a groupoid with the points as objects and the classes of paths as arrows. If we consider loops, i.e. paths \(h: a \rightarrow a\) whose endpoints and starting points coincide, their equivalence classes make up a group. For a path connected space (one in which there is some path between each pair of points), every choice of point a—or basepoint—leads to an isomorphic group, which is called the space’s fundamental group.

Some spaces, such as the disc and the point, are trivial in the sense that their fundamental group is simply the one-element group. An example of a space with a non-trivial group of path classes is the solid torus of Fig. 5. Here, there is a specific homotopy class of paths for each number of times the path goes around the central hole. No two of these are identical since the hole in the middle makes it impossible to contract any of the loops to a point. Furthermore, the direction that we go around in matters. In algebraic topology this is expressed by saying that the fundamental group of the solid torus is \(\langle \mathbb {Z}, +\rangle \). In other words, the homotopy class of any path in the solid torus is determined by a whole number, and composing such paths gives a number which is the sum of the numbers of the paths composed.

As we noted, the construction of homotopies—and therefore also path homotopies—is iterable. This entails that a topological space does not only have groups of paths, but also groups of higher-dimensional objects. The most important of these are the spheres of various dimensions, although we will not here go into how such spheres are composed with one another. Each dimension n of such spheres gives rise to a group called the nth homotopy group. These groups are used in order to model iterated identities in HoTT, i.e. propositional identities that hold between identity proofs.

Apart from homotopies HoTT also relies on another important topological concept, namely that of fibration. Intuitively, a fibration is a continuous assignment of a topological space called a fibre to each point of another space called the base space, which satisfies a so-called lifting property that allows topological structures (such as paths) on the base space to be mapped to the space consisting of all the fibres. The conditions on which such assignments count as fibrations ensure that all fibres assigned to the same path-connected component of the base space are homotopy equivalent in a continuous way. Usually, a fibration is expressed as a continuous function \(\pi : E \rightarrow B\), where B is the base space, E is the union of all the fibres and is called the entire space, and \(\pi \) is called the projection of E onto B. The fibres are definable as the inverse images of points of B under \(\pi \), i.e. the fibre on point x is the space \(\pi ^{-1}[x]\).

A very simple (or literally, trivial) example of a fibration is the space \(I \times I\), i.e. the 2-dimensional square with side 1, with \(\pi \) taken to be the orthogoal projection onto the first coordinate. As a fibration it can be seen as an assignment of a copy of I to each point in I. Interesting fibrations, however, tend to have both base spaces and fibres with more complex topological structure.

Since a fibration \(\pi : E \rightarrow B\) associates a space with each point of B we can define functions \(s: B \rightarrow E\) such that \(s(x) \in \pi ^{-1}[x]\), i.e. assignments of elements of a point’s fibre to that point. Such a function is known as a section of the fibration. The lifting property of fibrations ensures that the application of a section s to a path \(p: a \rightarrow b\) in B results in a path \(p_s: s(a) \rightarrow s(b)\), and furthermore that this path is unique up to homotopy. Figure 6 gives an example.

Fig. 6
figure 6

A fibration \(\pi : E \rightarrow B\) and a section s with a lifted path p

A section in our trivial example \(\pi : I \times I \rightarrow I\) is simply a continuous graph in the usual sense, defined on and taking values in the interval [0, 1]. Therefore a path in the x-coordinate I is a function \(p: I \rightarrow I\), and such a path naturally gives rise to a path taking values in the section.

Fibrations are used to model dependent types in HoTT. This is of special importance for us, since the propositional identity type family \(\mathop {\mathsf {Id}}_A(x, y)\) of a type A is an example of such a dependent type, assigning a type to each pair of elements of A. Unfortunately, time and space restrictions mean that we will not be able to delve any deeper into their definition. In what follows, we will attempt to go around these limitations by mainly focusing on identity types of specific pairs of points, rather than the more general type families.Footnote 10

4 Univalence and the semantics of homotopy type theory

Homotopies are, as we mentioned, central to the semantics of HoTT.Footnote 11 While the domain of a model of classical first-order logic is a set, terms refer to elements of that set, and relations and functions have subsets of Cartesian powers of the domain as their extension, the semantics of HoTT is thoroughly topological. Intuitively and informally, we may to a first approximation assume the following [cf. Univalent Foundations Program (2013), p. 11)]:

(i):

A type is a topological space, and a term of a type is a point in that space. Thus \(a \mathrel {\; : \;}X\) is true iff a is a point in X, and \(a \equiv b \mathrel {\; : \;}X\) is true iff a and b are the same point of X.

(ii):

A function \(f: A \rightarrow B\) is a continuous function from A to B; thus all functions that can be described in HoTT are continuous.

(iii):

A dependent type \(F: A \rightarrow \mathcal {U}\) is a fibration. The space corresponding to the type F(x) is the fibre on x.

(iv):

A dependent function \(f \mathrel {\; : \;}\prod _{x\mathrel {\; : \;}X}\; {F(x)}\) is a section of the fibration F.

(v):

The elements of an identity type \(\mathop {\mathsf {Id}}_X(a, b)\) are the paths from a to b in the space X.

(vi):

Identities between identities are homotopies between these paths, and the constant path on a is the reflexivity proof \(\mathop {\mathsf {refl}}_X(a)\).

(vii):

When the univalence axiom, one of the main innovations of UF, is added, identities between types become homotopy equivalences between their corresponding spaces.

Since we will avoid formal, rigorous derivations in what follows, we will mainly use informal characterisations like this one of the semantics of HoTT as a basis for our arguments. This gives some advantages in terms of keeping the discussion visual—which is one of the things that HoTT, much more than set theory, makes possible—but of course has the disadvantage that what we will not really create proofs proper. Still, I believe that for our philosophical purposes, an approach like this not only acceptable but also in some ways preferable.

When we need to go beyond geometric intuition (e.g. to actually prove things, or when the spaces involved become too hard to visualize) there are several directions open. To begin with, HoTT is being developed in formal proof assistants such as Coq and Agda, which means that the highest possible degree of rigour is available when needed. For more semantically oriented approaches, one can follow Awodey and Warren (2009) and employ Quillen’s (1967) notion of model category in order to equip the types with a well-defined topological structure. Furthermore, HoTT also has a second, category-theoretical semantics, according to which types are modeled by higher groupoids.Footnote 12 Because of its greater intuitive content we have chosen to focus on the topological semantics here, even if the category-theoretical version often is useful as a complement.

Since a space’s homotopies between paths, its homotopies between homotopies, etc. can have complex group structures of their own, identities holding between elements of other identity types can have such structure as well. Temporarily suppressing the types of \(\mathop {\mathsf {Id}}\) and \(\mathop {\mathsf {refl}}\) and relying on context to sort them out, we call the type

$$\begin{aligned} \mathop {\mathsf {Id}}(\mathop {\mathsf {refl}}\nolimits ^{n - 1}(a), \mathop {\mathsf {refl}}\nolimits ^{n-1}(a)) \end{aligned}$$

the n -iterated identity type on the point a, where the exponent \(n-1\) denotes repeated application.Footnote 13 Thus, as expected, the usual identity type is the 1-iterated one.

As all types—including the identity types—are spaces, even the types of identities holding between an element and itself can be complex, so the structure of an n-iterated identity type can be highly nontrivial. In extensional type theory, the uniqueness of identities removes all such complexity. In intensional type theory, the univalence axiom helps manage it by allowing the treatment of some of the elements of these types as the same, much as going to homotopy classes of paths in homotopy theory allows the treatment of a multitude of paths as identical. In both cases, simplicity is increased without losing the more important features of the structures in question.

With these remarks as motivation, we will now begin to gradually work our way towards stating the univalence axiom. Let f and g be elements of the dependent function type \(\prod _{a\mathrel {\; : \;}A}\; {P(a)}\), i.e. assignments of a point of the space P(a) to each element \(a \mathrel {\; : \;}A\). To capture type-theoretic homotopy we first need to define the following intermediate type:

$$\begin{aligned} f \sim g \mathrel {\equiv _{df.}}\prod \limits _{a\mathrel {\; : \;}A} \mathop {\mathsf {Id}}\nolimits _{P(a)} (f(a), g(a)) \end{aligned}$$

Read out, this says that \(f \sim g\) is the dependent function type consisting of assignments of an identity proof between f(a) and g(a) to each element \(a \mathrel {\; : \;}A\). An element of it can thus be seen as a continuous selection of paths between the values taken by f and g. We may also say that \(f \sim g\) is the type of proofs that f and g, interpreted as continuous functions, are homotopic, i.e. that there is a homotopy between them.

Using this type, the type of proofs that a function f is a homotopy equivalence can be defined as

$$\begin{aligned} \mathop {\mathsf {isequiv}}f \mathrel {\equiv _{df.}}\left( \sum \limits _{g: B \rightarrow A}{f \circ g \sim 1_B}\right) \times \left( \sum \limits _{h: B \rightarrow A}{h \circ f \sim 1_A} \right) \end{aligned}$$

This definition makes \(\mathop {\mathsf {isequiv}}f\) the type of pairs of proofs that there are functions \(g, h \mathrel {\; : \;}B \rightarrow A\) such that \(g \circ f\) is homotopic to the identity function on B, and \(f \circ h\) to the identity function on A. We let the type \(A \simeq B \mathrel {\; : \;}\mathcal {U}\) be the type that contains all homotopy equivalences \(f: A \rightarrow B\).

Relying on this sequence of concepts, it is finally possible to state the univalence axiom. In fact, it turns out to be remarkably simple; it just allows us to postulate the existence of a homotopy equivalence

$$\begin{aligned} (A \simeq B) \simeq \mathop {\mathsf {Id}}\nolimits _\mathcal {U}(A, B) \end{aligned}$$

for any types AB. Informally, it says that the type of homotopy equivalences between A and B is itself homotopy equivalent to the type of identities between A and B. In terms of the Curry–Howard correspondence, it implies that given a proof that \(f: A \rightarrow B\) is a homotopy equivalence, we can always construct a proof that there is an identity between A and B.

As expected, the main motivation for univalence comes from the homotopy semantics, according to which it says that we are always allowed to treat homotopy equivalent spaces as equal. In a way, this accords with the structuralist attempts to identify isomorphic structures, i.e. to take isomorphism as the identity condition for structures (Awodey 2014). And in fact such an identification, at least for algebraic structures, follows from the univalence axiom (Univalent Foundations Program 2013, pp. 96–99). It is important to note, however, that the possibility of both the identification of isomorphic structures and of homotopy equivalent spaces requires the multiplicity of non-equal identities supplied by intensional type theory; it is impossible to do so using classical extensional equality, as can be seen by considering e.g. the automorphism group of any object, which requires the existence of non-trivial isomorphisms to be meaningful. Or, for that matter, the fact that sets are isomorphic when they have the same cardinality, but making any two sets with different members identical would result in contradiction.

The Curry–Howard correspondence can also be used to illustrate the univalence axiom. We first note that the existence of functions \(f: P \rightarrow Q\) and \(g: Q \rightarrow P\) is sufficient to guarantee that P is true iff Q is, but this does not say anything about the nature of the proofs involved in this equivalence, and neither does it say anything about the identity conditions of the propositions themselves. Since univalence allows us to construct a proof that P and Q are the same from proof of \(P \simeq Q\), it bears directly on the question of when propositions are to count as identical. What we need to do in order to see what it says to is to get a grasp of the type \(P \simeq Q\) when P and Q are interpreted as propositions.

Following traditional usage, we say that a type theory is propositionally extensional if we can construct a proof of \(P = Q\) from proofs of \(P \rightarrow Q\) and \(Q \rightarrow P\). Univalence does not give propositional extensionality in this sense, since the mere existence of functions between two types is insufficient to draw the conclusion that these types are identical. The exception is when we limit ourselves to types P that have at most one member, and such types are precisely the ones that are referred to as mere propositions in HoTT (Univalent Foundations Program 2013, p. 118). What follows from univalence is a principle we will call weak propositional extensionality, in distinction to the traditional kind, which we will refer to as strong. To describe it, we first have to say something more about the propositions-as-types interpretation.

We said that a proposition P is to be interpreted as the type of its proofs. But in the particular case of conditionals, a proof of \(P \rightarrow Q\) is interpretable both as a conditional proof of Q from the premiss that P, and as a way to transform any proof of P to a proof of Q. The first interpretation indicates that conditional proofs are the kind of things that can be concatenated by placing one after the other, as long as the premisses of the second are proved as part of the first. The second lets us apply a conditional proof \(f \mathrel {\; : \;}P \rightarrow Q\) to a proof \(p \mathrel {\; : \;}P\) to get an unconditional proof \(f(p) \mathrel {\; : \;}Q\). These interpretations are not in conflict: if we take \(f \mathrel {\; : \;}P \rightarrow Q\) to be a proof of Q given a premiss P, then concatenation of proofs \(f \circ p\) also gives the method of application. Thus, when both composition and application are possible, we should have that \(f(p) = f \circ p\).

Every proposition P has an associated identity proof \(1_P \mathrel {\; : \;}P \rightarrow P\), which qua conditional proof may be seen the obvious derivation of P from P obtained by merely reiterating P. Applying this to \(\simeq \) means that, intuitively, a proof of \(P \simeq Q\) can be obtained by giving proofs \(f \mathrel {\; : \;}P \rightarrow Q\) and \(g \mathrel {\; : \;}Q \rightarrow P\), such that \(g \circ f\)—the concatenation of f and g—is homotopic to the identity proof of P, and \(f \circ g\) to that of Q.

What does it mean to say that one conditional proof is homotopic to another? Looking at the definition of \(\sim \), we see that a proof of \(g \circ f \sim 1_P\) ought to correspond to a (non-empty) collection of proofs that \(g(f(p)) = 1_P(p) = p\) for all proofs \(p \mathrel {\; : \;}P\), or perhaps to a uniform method of constructing a proof of \(g(f(p)) = p\) given any \(p \mathrel {\; : \;}P\). Such a collection or method cannot, of course, exist unless it actually is the case that \(g(f(p)) = p\) for all \(p \mathrel {\; : \;}P\), so this requires that g(f(p)) and p are indeed the same proof. Since this must hold for f(g(q)) and q as well, we see that \(P \simeq Q\) has the consequence that the type of proofs of P must be isomorphic (in the category-theoretic sense of being invertibly mappable) to the type of proofs of Q. The question of when \(P \simeq Q\) holds thus ultimately rests on when proofs are to count as identical, which means that univalence gives a way of producing identity conditions of propositions from those of proofs. We refer to the validity of the inference from the isomorphism of P with Q to \(P = Q\), when P and Q are propositions, as weak propositional extensionality.

Whether weak propositional extensionality holds or not depends on which identity conditions for proofs and propositions we adopt. For instance, strong propositional extensionality implies weak, since the existence of an isomorphism between P and Q requires the existence of functions \(P \rightarrow Q\) and \(Q \rightarrow P\). But weaker conditions suffice. For any proposition P, let the lemma family \(L_P\) be a type family \(L_P \mathrel {\; : \;}P \rightarrow \mathcal {U}\) that maps any proof \(p \mathrel {\; : \;}P\) to the type of all theorems (in the mathematician’s sense, rather than merely the logician’s) that are proved and used as lemmas in p. We will consider the assumption that \(p = q \rightarrow L(p) = L(q)\), which means that if two proofs use and rely on different lemmas, they are not equal; this arguably conforms to at least one common interpretation of what it means to be the same proof in ordinary mathematics. It also follows from the type theoretic indiscernibility of identicals if \(L_P\) is a well-defined type family.

Let \(P \simeq Q\) and take both P and Q to be sufficiently important to count as “theorems”. If one exists, let \(p \mathrel {\; : \;}P\) be a proof of P such that \(Q \mathrel {\; : \;}L(p)\) does not hold, or alternatively take \(q \mathrel {\; : \;}Q\) such that not \(P \mathrel {\; : \;}L(q)\). Consider two cases:

(i):

No such p or q exists, in which case it is impossible to prove either of P or Q without proving the other. If \(P \ne Q\), this means that P and Q are essentially unprovable, since no one of them can be proved first. Disregarding this possibility, we must have that \(P = Q\).

(ii):

Either such a p or such a q exists. Without loss of generality, assume that the first of these is the case. Assume that fg are conditional proofs \(f \mathrel {\; : \;}P \rightarrow Q\) and \(g \mathrel {\; : \;}Q \rightarrow P\) such that \(g(f(p)) = p\). Then \(Q \mathrel {\; : \;}L(g(f(p))\), since f(p) is a proof of Q and g(f(p)) is obtained by concatenating f(p) with g. So \(L(g(f(p))) \ne L(p)\), and from the assumption that equal proofs have the same lemmas, that \(g(f(p)) \ne p\), which yields a contradiction. Thus no such fg can exist, so \(P \simeq Q\) cannot hold.

Thus weak propositional extensionality follows from some quite reasonable assumptions about proof identity. Furthermore, univalence can, informally, be seen as a proof relevant version of weak propositional extensionality.

Fig. 7
figure 7

Some concepts of extensionality

5 Varieties of extensionality

We have now introduced some of the fundamental ideas of HoTT, and it is time to delve into matters pertaining more directly to questions of intensionality and extensionality. An extensional type in HoTT is one in which all of the n-iterated identity types are trivial, or in the topological interpretation, one whose identity types are all contractible spaces. Extensional type theory is type theory in which one may infer a judgmental equality \(a \equiv b \mathrel {\; : \;}X\) from the existence of an identity proof \(p \mathrel {\; : \;}\mathop {\mathsf {Id}}_X(a, b)\). It is certainly not obvious what this has to do with traditional notions of extensionality and intensionality used in logic and philosophy. In this section and the next we will review some of these, and trace out connections between them and to concepts in HoTT. In doing so, we are attempting a kind of conceptual analysis, although one that consists in tracing logical fibres through a Wittgensteinian family resemblence, rather than a search for essences or sufficient and necessary conditions.

Figure 7 provides a road map of the notions we will discuss. Concepts pertaining to HoTT are in grey boxes, and arrows represent logical consequence, although in some cases only given specific interpretations of the terms involved. A ‘\(\sim \)’ in the diagram stands for an analogy; a more careful investigation would preferably flesh these out in terms of definite structural relationships.

The two main concepts of extensionality relevant to HoTT—univalence and extensional = elimination (i.e. the equality reflection rule)—appear on the far right; of these the first is considered an optional (but often crucial) postulate, and the second would make HoTT trivial if it held universally, although it can be applied to individual types. The present section will concern itself with the boxes semantic extensionality, substitutional extensionality, and set-theoretic extensionality, which are all concepts that come directly out of traditional logic. The next section is about the boxes immediately to the right of set-theoretic extensionality: weak propositional extensionality, uniqueness of identity proofs, uniqueness of identity relations, and function extensionality, presented set theoretically. These are notions that are of importance for us mainly because of their structural similarities to corresponding concepts in HoTT, although we will see that in two of the cases, the logical ties to set-theoretic extensionality turn out to be weak.

Section 7 starts out from the concepts of intensionality in HoTT, and traces their relationships with semantic extensionality, especially via the indiscernibility of identicals, as it was introduced in Sect. 2. Here we also discuss the other forms of extensionality in the grey boxes, and their connections to the more traditional forms we have discussed in Sects. 5 and 6. We will see that the fact that HoTT essentially has two fundamental and non-equivalent notions of extensionality—uniqueness of identities and univalence—gives rise to complications when they are to be related to classical concepts, partly because it simply cannot be the case that both of them correspond to what philosophers or classical logicians usually mean by “extensionality”.

The result of Sects. 57 will be largely negative in the sense that few concrete connections will be found between extensionality in classical logic and extensionality in HoTT. Section 8 attempts to alleviate this by providing a different link, going via modal logic and the topological semantics of HoTT.

Semantic extensionality, which we will begin with, may be seen as fundamental, but also merely schematic. We will call a context (e.g. a sentence, theory or language) semantically extensional iff the extension of any complex expression in it is a function of the extensions of its component expressions. This does not rule out that expressions have non-extensional features, but only that such features do not affect extensions. Allowing such inessential non-extensional features seems necessary if one is to have a workable concept, since e.g. terms in first-order logic certainly have non-extensional properties, such as syntactical ones, even if these do not matter in determining complex expressions’ extensions.

Given an appropriate binary coextension relation \(\mathrel {\mathsf {coex}}\) between expressions, we may write the semantic extensionality of the expression \(\psi \) as the axiom schema

$$\begin{aligned} \xi \mathrel {\mathsf {coex}}\xi ' \rightarrow \psi \mathrel {\mathsf {coex}}\psi [\xi ' / \xi ] \end{aligned}$$

where \(\xi , \xi '\) and \(\psi [\xi ' / \xi ]\) all have to be well-formed expressions. It is clear that unless we say something about what makes expressions coextensional, this tells us very little. Various forms of assumptions about expressions’ coextensionality give rise to various other concepts of extensionality, two of which we will discuss here.

The first, which will be called substitutional extensionality, can be summarised as the requirement that the truth value of a sentence \(\varphi \) does not change when the replacement of a term s with a term t is made, given that \(s = t\) is true. In first-order logic it can be expressed simply as the axiom schema

$$\begin{aligned} (\varphi \wedge s = t) \rightarrow \varphi [t / s] \end{aligned}$$

Substitutional extensionality is closely related to Quine’s notion of a referentially transparent context, in which both the substitution of coreferential terms and the rule of existential instantiation are truth preserving, as in first-order logic (Quine 1961b). It can be obatained from semantic extensionality by laying down the definitions

$$\begin{aligned} \varphi \mathrel {\mathsf {coex}}\psi&\mathrel {\equiv _{df.}}\varphi \leftrightarrow \psi \\ s \mathrel {\mathsf {coex}}t&\mathrel {\equiv _{df.}}s = t \end{aligned}$$

for formulae \(\varphi , \psi \) and terms st.

The second form of extensionality we will discuss here is the set theoreticalFootnote 14 one, embodied in the axiom of extensionality

$$\begin{aligned} \forall x \; (x \in c \leftrightarrow x \in d) \leftrightarrow c = d \end{aligned}$$

Indeed, not assuming this axiom is often taken to be sufficient for making mathematics intensional, as in e.g. the classic Feferman (1985). How is this set theoretic extensionality related to the substitutional or semantic versions?

It is trivial that substitutional extensionality does not imply set extensionality, since every instance of substitutional extensionality is a theorem of FOL with identity, but the set-theoretic axiom of extensionality is not. To investigate whether the converse holds, it is naturally crucial to not assume FOL to already have identity. Luckily, set theory can be developed without primitive identity, and the axiom of extensionality taken as a definition of the identity relation, given that what we will call the weak axiom of set extensionality

$$\begin{aligned} \forall x \; (x \in c \leftrightarrow x \in d) \rightarrow \forall y \; (c \in y \leftrightarrow d \in y) \end{aligned}$$

is imposed. This is needed to guarantee that sets with the same members are themselves members of the same sets, and is a theorem of the usual extensionality axiom in first-order logic with identity.

In a first-order language in which the only predicate is \(\in \), the weak axiom of set extensionality does imply substitutional extensionality, as can be proved through induction on the complexity of formulae. If we have other primitive predicates as well, \(c = d\) does not guarantee that c and d are substitutable salva veritate. Thus weak set extensionality neither implies nor is implied by substitutional extensionality.

However, set extensionality can be made to follow from semantic extensionality by making a specific definition of the relation \(\mathrel {\mathsf {coex}}\) for terms that refer to sets. Assuming the same definition of \(\mathrel {\mathsf {coex}}\) for formulae as above, and restricting that definition for terms to ones not referring to sets, we define

$$\begin{aligned} c \mathrel {\mathsf {coex}}d \mathrel {\equiv _{df.}}\forall x \; (x \in c \leftrightarrow x \in d) \end{aligned}$$

whenever c or d are terms for sets. Given this definition, it can be shown that the weak axiom of set extensionality follows in FOL without identity, and the set theoretic axiom of extensionality follows in a language which has identity:

Proposition 1

If \(c \mathrel {\mathsf {coex}}d \leftrightarrow \forall x \; (x \in c \leftrightarrow x \in d)\) then semantic extensionality entails weak set extensionality in a language without identity, and set extensionality in a language with identity.

Proof

From semantic extensionality it follows that c and d having the same members is sufficient for full substitutivity salva veritate. Applying this to the theorem \(\forall y \; (c \in y \leftrightarrow c \in y)\) gives weak set extensionality, and applying it to \(c = c\) gives set extensionality. \(\square \)

We have thus found that although set extensionality and substitutional extensionality are logically independent, they both follow from semantic extensionality given appropriate definitions of what it means for various forms of expressions to be coextensional. This is why we referred to the latter as schematic: it can be made to fit several other concepts, depending on how \(\mathrel {\mathsf {coex}}\) is defined.

6 Alternate forms of extensionality in set theory

This section will construct—using set-theoretic components—a number of concepts of extensionality that do not usually make an appearance in set theory, but which have a important roles to play in intuitionistic type theory. The concepts in question are function extensionality, weak propositional extensionality, and two forms of uniqueness of identity. Both one of the forms of uniqueness of identity and weak propositional extensionality will furthermore require using a version of the Curry–Howard correspondence adapted for set theory, which will be presented later in this section. However, we begin with function extensionality, i.e. the implication

$$\begin{aligned} \forall x \; (f(x) = g(x)) \rightarrow f = g \end{aligned}$$

This corresponds to defining

$$\begin{aligned} f \mathrel {\mathsf {coex}}g \mathrel {\equiv _{df.}}\forall x \; (f(x) = g(x)) \end{aligned}$$

for function terms fg. To interpret this set theoretically, it is easiest to take the function application notation f(x) to be contextually defined by a schema such as

$$\begin{aligned} s = f(t) \mathrel {\equiv _{df.}}\langle t, s\rangle \in f \end{aligned}$$

for arbitrary terms st. Function extensionality is then equivalent to

$$\begin{aligned} \forall x \forall y \; (\langle x, y \rangle \in f \leftrightarrow \langle x, y\rangle \in g) \rightarrow f = g \end{aligned}$$

whenever f and g are sets of ordered pairs satisfying the requirements of a total function. But this condition is guaranteed to hold—for any encoding \(\langle \; \cdot \; , \; \cdot \; \rangle \) of ordered pairs as sets—by set extensionality.

For the other direction, i.e. from function extensionality to set extensionality, we need that every set must also be a function. This does not hold given the above interpretation of functions as sets of ordered pairs. To be sure, just as it is possible to interpret functions as sets, it is possible to interpret any set f as a function, e.g. by distinguishing a certain 2-element set \(\Omega \) (say \(\Omega = \{0, 1\})\) and then taking f to be the set of arguments for which f takes the value 1 rather than 0. More precisely, we would define the function notation f(x) through the equivalence

$$\begin{aligned} s = f(t) \mathrel {\equiv _{df.}}(1 = s \wedge t \in f) \vee (0 = s \wedge t \notin f) \end{aligned}$$

We can then to derive set extensionality from function extensionality as follows:

$$\begin{aligned}&\forall x \; (f(x) = g(x)) \rightarrow f = g \Leftrightarrow \\&\forall x \; ((1 = f(x) \wedge x \in g) \vee (0 = f(x) \wedge x \notin g)) \rightarrow f = g \Leftrightarrow \\&\forall x \; ((((1 = 1 \wedge x \in f) \vee (1 = 0 \wedge x \notin f)) \wedge x \in g) \\&\;\;\;\; \vee (((0 = 1 \wedge x \in f) \vee (1 = 1 \wedge x \notin f)) \wedge x \notin g)) \rightarrow f = g \Leftrightarrow \\&\forall x \; ((x \in f \wedge x \in g) \vee (x \notin f \wedge x \notin g)) \rightarrow f = g \Leftrightarrow \\&\forall x \; (x \in f \leftrightarrow x \in g) \rightarrow f = g \end{aligned}$$

However, such an interpretation is incompatible with the previous one, so at most we can see function extensionality as following from set extensionality, or set extensionality as following from function extensionality, but we cannot have both. As the interpretation of functions as sets of ordered pairs is by far the more common one in set theory, we take the former option.

The second form of extensionality we will consider here is one that is clearly type theoretical: uniqueness of identities. Indeed, its strongest form, the equality reflection rule

figure b

is what distinguishes extensional Martin-Löf type theory from intensional. In terms of the homotopy semantics, a type theory that validates this rule is one in which every identity type is a one-point space.

In HoTT, it is also useful to discuss weaker versions which correspond to the condition that identity types have to be contractible, i.e. homotopy equivalent to one-point spaces, but not necessarily one-point spaces themselves. In type theoretical terms, this means that for each \(p \mathrel {\; : \;}\mathop {\mathsf {Id}}_X(a, a)\), there is a higher identity \(p' \mathrel {\; : \;}\mathop {\mathsf {Id}}_{\mathop {\mathsf {Id}}_X(a, a)}(p, \mathop {\mathsf {refl}}_X(a))\), or differently put, that all propositional identities are themselves propositionally, but not necessarily judgmentally, equal.

To translate this to set theory we will consider two interpretations of the identity type \(\mathop {\mathsf {Id}}_X(a, b)\): as a type of relations or relation instances holding between a and b, and as a type of proofs of a proposition \(a = b\). We refer to these interpretations as uniqueness of identity relations and uniqueness of identity proofs, and will discuss the first of these directly, and the second, since it relies crucially on interpreting types as propositions, after we have introduced a version of the Curry–Howard correspondence for set theory. Although they come out equivalent in HoTT, the same does not hold in set theory.

From a philosophical viewpoint, there is in itself nothing strange with more than one instance of a relation holding between different entities. It is possible for someone to be related to me through different lineages, such as when pairs of siblings marry one another so that, say, my sister’s wife is also my wife’s sister. Objects may be similar in more than one respect. And mathematical structures are often embeddable in one another in more than one way. So the idea that the identity relation—so long as we take it to be a relation at all in any substantial sense of the word—could be treated as non-unique should not be seen as obviously incoherent. Different interpretations of relations’ identity conditions may give us different answers.

Set theory has its own interpretation of what a relation is: a set of ordered pairs. The identity relation on a set A is the diagonal \(\Delta A = \{\langle x, x\rangle \; | \; x \in A\}\). An instance of such a relation, for an element \(a \in A\), can then fairly reasonably be interpreted as a pair \(\langle a, a\rangle \). Thus the question of whether identities are unique in set theory comes down to whether such pairs are unique. Insofar as we take them to be set-theoretic constructions (e.g. as defined by Wiener, Hausdorff or Kuratowski) this uniqueness follows from the set-theoretic axiom of extensionality, although the converse does not hold unless we somehow manage to encode ordered pairs in such a way that all sets are also ordered pairs. We thus take uniqueness of identity relations to be a consequence of set extensionality, but set extensionality to not be a consequence of uniqueness of identity relations.

The next two extensionality concepts—uniqueness of identity proofs and weak propositional extensionality—both depend on the Curry–Howard interpretation of propositions as types. But since types are the type-theoretic analogue of sets, what we need is a version of the Curry–Howard correspondence for set theory. In fact, such a correspondence can be set up, since it does not depend critically on anything specific to type theories rather than set theory. The guiding idea is to go back to the correspondence’s origins in the Brouwer–Heyting–Kolmogorov semantics of intuitionistic logic, which are easily adapted to classical logic.Footnote 15

To simplify, we will only consider a very simple language \(\mathcal {L}\) without variables or quantifiers, but with individual constants \(c_1, c_2, \ldots \), possibly a set of primitive predicates \(P_1, P_2, \ldots \), an identity predicate \(=\), and the classical connectives \(\bot , \lnot , \wedge , \vee , \rightarrow \). This gives us a kind of middle ground between sentential and predicate logic, which is easy to work with but still allows us to discuss identity.Footnote 16 A treatment of full first-order logic in the style we will do here would require use of dependent sets, and although this can be done, it requires far more elaborate set-theoretic constructions than we will need to use for our limited language. In particular, dependent functions can be treated with an elegance in type theory that seems to be unavailable in set theory.

As metalanguage, we use ZFC. Just as the Curry–Howard correspondence allows us to interpret a type as a proposition in type theory, we want to be able to interpret sets as propositions, and in particular non-empty sets as true propositions. In the following, we will use \(s, t, u, t', t_1, t_2\), etc. as metavariables ranging over terms (in the present case, individual constants) of \(\mathcal {L}\). Let a CH model \(\mathfrak {M}\) of \(\mathcal {L}\) be

(i):

an assignment of a set \(\mathfrak {M}(P(t_1, \ldots , t_n))\) to each atomic sentence \(P(t_1, \ldots , t_n)\), together with

(ii):

a bijective function \(\mathsf {refl}_\mathfrak {M}\) from the terms of \(\mathcal {L}\) to a set \(\mathsf {CRefl}_\mathfrak {M}\), which we call the set of canonical reflexivity proofs, and

(iii):

functions

$$\begin{aligned} \mathsf {symm}_\mathfrak {M} :&\; \mathfrak {M}(s = t) \rightarrow \mathfrak {M}(t = s) \\ \mathsf {trans}_\mathfrak {M} :&\; \mathfrak {M}(s = t) \times \mathfrak {M}(t = u) \rightarrow \mathfrak {M}(s = u) \\ \mathsf {idelim}_\mathfrak {M} :&\; \mathfrak {M}(t_k = u) \times \mathfrak {M}(P(t_1, \ldots , t_k, \ldots , t_n)) \rightarrow \mathfrak {M}(P(t_1, \ldots , u, \ldots , t_n)) \end{aligned}$$

for all the terms of \(\mathcal {L}\). These functions will be needed to guarantee that identity performs as expected.

A valuation based on \(\mathfrak {M}\) is a function that assigns sets to sentences of \(\mathcal {L}\) such that

$$\begin{aligned} \mathsf {refl}_\mathfrak {M}(t) \in \llbracket t = t\rrbracket _\mathfrak {M} \end{aligned}$$

and the following recursive clauses hold:

$$\begin{aligned} \llbracket \bot \rrbracket _\mathfrak {M}= & {} \emptyset \\ \llbracket P(t_1, \ldots , t_n) \rrbracket _\mathfrak {M}= & {} \mathfrak {M}(P(t_1, \ldots , t_n)) \\ \llbracket \varphi \wedge \psi \rrbracket _\mathfrak {M}= & {} \llbracket \varphi \rrbracket _\mathfrak {M} \times \llbracket \psi \rrbracket _\mathfrak {M} \\ \llbracket \varphi \vee \psi \rrbracket _\mathfrak {M}= & {} \ \llbracket \varphi \rrbracket _\mathfrak {M} \sqcup \llbracket \psi \rrbracket _\mathfrak {M} \\ \llbracket \varphi \rightarrow \psi \rrbracket _\mathfrak {M}= & {} ({\llbracket \psi \rrbracket _\mathfrak {M}})^{\llbracket \varphi \rrbracket _\mathfrak {M}} \\ \llbracket \lnot \varphi \rrbracket _\mathfrak {M}= & {} \llbracket \varphi \rightarrow \bot \rrbracket _\mathfrak {M} \end{aligned}$$

The ‘\(\sqcup \)’ in the clause for disjunction stands for disjoint union; a regular union could also have been used, but we have gone with the disjoint version in order to stay closer to the type theoretic treatment. As in the Curry–Howard correspondence or the Brouwer–Heyting–Kolmogorov semantics, we refer to the set \(\llbracket \varphi \rrbracket _\mathfrak {M}\) as the set of proofs of the sentence \(\varphi \). Since the proof sets of implications have functions as members, we can apply a proof \(q \in \llbracket \varphi \rightarrow \psi \rrbracket _\mathfrak {M}\) to a proof \(p \in \llbracket \varphi \rrbracket _\mathfrak {M}\) to obtain a proof \(r \in \llbracket \psi \rrbracket _\mathfrak {M}\), and we can compose a proof \(p \in \llbracket P \rightarrow Q \rrbracket _\mathfrak {M}\) with a proof \(q \in \llbracket Q \rightarrow R \rrbracket _\mathfrak {M}\) to obtain a proof \(r \in \llbracket P \rightarrow R \rrbracket _\mathfrak {M}\); we write both these operations as \(r = q \circ p\). We say that \(\varphi \) is true in the model \(\mathfrak {M}\) iff \(\llbracket \varphi \rrbracket _\mathfrak {M} \ne \emptyset \). A sentence is logically true iff it is true in all models.

Let \(\mathcal {L}^+\) be the first-order language that extends \(\mathcal {L}\) by adding first-order variables and quantifiers, and define logical truth in \(\mathcal {L}^+\) in the usual Tarskian way. Then we have the following:

Theorem 1

\(\varphi \) is a logical truth of \(\mathcal {L}\) iff \(\varphi \) is a logical truth of \(\mathcal {L}^+\), for all sentences \(\varphi \in \mathcal {L}\).

Proof

It is sufficient to show that any first-order model \(\mathfrak {M}^+\) of a sentence \(\varphi \in \mathcal {L}\) may be assigned a CH model \(\mathfrak {M}\) of the same sentence \(\varphi \), and vice versa. The left-to-right direction can be done by assigning atomic sentences true in \(\mathfrak {M}^+\) arbitrary non-empty sets, and the right-to-left direction by making a first-order model from equivalence classes of \(\mathcal {L}\)’s individual constants, much as in the Henkin construction commonly used to prove first-order completeness. The proof then proceeds by checking that the recursive clauses given above for the connectives give the same truth conditions as the usual ones for classical logic, e.g. that \(\llbracket \varphi \rrbracket _\mathfrak {M} \times \llbracket \psi \rrbracket _\mathfrak {M}\) is non-empty iff both \(\llbracket \varphi \rrbracket _\mathfrak {M}\) and \(\llbracket \psi \rrbracket _\mathfrak {M}\) are, etc. This follows from the standard set-theoretic definitions of the operators in question. \(\square \)

We have thus set up something similar to the Curry–Howard correspondence for a fragment of first-order logic: sets can be taken as the semantic values of sentences in such a way that true sentences have non-empty sets as values, just as true propositions under the Curry–Howard correspondence correspond to non-empty types. We will use this semantics to transfer the concepts of weak propositional extensionality and uniqueness of identity proofs from HoTT to set theory, in order to see how they relate to the set-theoretic axiom of extensionality.

The question of whether identity proofs are unique translates directly to whether the sets \(\llbracket s = t \rrbracket _\mathfrak {M}\) can have more than one element. But neither this nor its negation follows from purely set-theoretical assumptions like the axiom of extensionality: if we want it to hold, we have to add it as an extra condition in our definition of CH model. As such, the decision is part of the semantics rather than the metalanguage that semantics is implemented in.

This is actually not very different from how the situation is in type theory. The Curry–Howard correspondence in HoTT is also best seen as a semantics for many-sorted first-order logic, which allows discussion of truth or falsity to be carried out in terms of discussion about types.Footnote 17 What obscures this fact somewhat is that the logic (the discourse about truth and falsity) and the type theory (the discourse about types/sets/properties) share the same syntax. Nevertheless, it is clear that uniqueness of identity proofs is just as independent as an assumption in type theory as it is in the semantics in terms of CH models we have sketched here. For example, in Univalent Foundations Program (2013, p. 118), what is called “traditional logical notation”, which is an alternative propositions-as-types interpretation for HoTT, is defined using a truncation operator that discards all higher identity structure of types. As presented, this notation does not mention how to interpret first-order identity, but it would be easy to extend it to do so by making the definition

$$\begin{aligned} x = y \; \mathrel {=_{df.}}\; \Vert \mathop {\mathsf {Id}}\nolimits _A(x, y) \Vert \end{aligned}$$

where A is the type of x and y. Under this modified semantics it is reasonable to hold that identity proofs would be unique in HoTT, while identity relations could still be non-unique, since these deal with the types directly, and not merely through the propositions-as-types interpretation.

Let us move on to weak propositional extensionality in set theory. The traditional (strong) version, according to which propositions are equal when interderivable, is actually incompatible with the semantics outlined here: although all logical truths are interderivable, they will generally, by the recursive clauses we have given here, have wildly different sets of proofs. More generally, the strong version of propositional extensionality is incompatible with proof-relevant mathematics (or logic), which both our current semantics, and that of HoTT, adhere to.

The case with the homotopy-theoretic version is more subtle. In Sect. 4 we described weak propositional extensionality as allowing us to construct an element of \(\mathop {\mathsf {Id}}_\mathcal {U}(P , Q)\) from elements of

$$\begin{aligned} \mathop {\mathsf {Id}}\nolimits _{P \rightarrow P}(q \circ p, \mathop {\mathsf {refl}}\nolimits _\mathcal {U}(P \rightarrow P)) \end{aligned}$$

and

$$\begin{aligned} \mathop {\mathsf {Id}}\nolimits _{Q \rightarrow Q}(p \circ q, \mathop {\mathsf {refl}}\nolimits _\mathcal {U}(Q \rightarrow Q)) \end{aligned}$$

where \(p: P \rightarrow Q\) and \(q: Q \rightarrow P\). To translate this directly to our set-theoretic Curry–Howard semantics, we would need to introduce reflexive or canonical proofs of sentences of the form \(P \rightarrow P\), much as we did for those of the form \(t = t\) when defining CH models. While this can be done, it does however turn out that much of what we want to say can be shown in another way, which does not require us to expand the semantics.

For any model \(\mathfrak {M}\) of \(\mathcal {L}\), let \(\mathcal {L}|_\mathfrak {M}\) be the fragment of \(\mathfrak {L}\) that does not contain \(\bot \) and only contains those atomic sentences \(P(t_1, \ldots , t_n)\) or identities \(s = t\) not assigned empty sets by \(\mathfrak {M}\). Let a logical model \(\mathfrak {M}\) be one in which no two atomic sentences or identities are assigned the same set of proofs. It is clear that, at least on the intended interpretation, logical models are the only ones that are reasonable, since models which are not logical are ones in which two logically independent sentences have exactly the same proofs.

Proposition 2

Let \(\mathfrak {M}\) be a logical model of \(\mathcal {L}\). Then is injective on the fragment \(\mathcal {L}|_\mathfrak {M}\).

Proof

By induction on the truth clauses. \(\square \)

The upshot of this is that, insofar as there are some atomic sentences that are true, there will always be a significant part of \(\mathcal {L}\) wherein two different sentences never express the same proposition, so no non-trivial form of weak propositional extensionality can hold at all. In particular, the existence of functions

$$\begin{aligned} p: \llbracket \varphi \rrbracket _\mathfrak {M}&\rightarrow \llbracket \psi \rrbracket _\mathfrak {M} \\ q: \llbracket \psi \rrbracket _\mathfrak {M}&\rightarrow \llbracket \varphi \rrbracket _\mathfrak {M} \end{aligned}$$

cannot imply that \(\llbracket \varphi \rrbracket _\mathfrak {M} = \llbracket \psi \rrbracket _\mathfrak {M}\), unless we have that \(\varphi = \psi \) or that \(\llbracket \varphi \rrbracket _\mathfrak {M} = \llbracket \psi \rrbracket _\mathfrak {M} = \emptyset \).

What makes weak propositional extensionality possible in HoTT is the presence of a weaker form of identity in the metalanguage: HoTT’s weak propositional extensionality does not say that P and Q are judgmentally equal, but only propositionally so. A strict form of equality, like the one of classical logic, or judgmental equality, will always make it impossible for propositions to be equal as long as we use something like the proof-relevant Curry–Howard semantics given here. The very point of having the clause for \(\varphi \wedge \psi \) be \(\llbracket \varphi \rrbracket _\mathfrak {M} \times \llbracket \psi \rrbracket _\mathfrak {M}\) rather than, say, \(\llbracket \varphi \rrbracket _\mathfrak {M} \cap \llbracket \psi \rrbracket _\mathfrak {M}\) (which would give the same truth conditions) is that the former does not discard any information about the proofs we have used for \(\varphi \) and \(\psi \), while the latter typically does. It is only the presence of an equality relation like the propositional one in intensional type theory, whose elimination rule does not discard information either, but only shows how to translate it to other types, that makes it possible to equate propositions with one another even if they do not have strictly (judgmentally) the same proofs.

In summary, we have found that set extensionality implies function extensionality as well as the set-theoretic uniqueness of identity relations, but that neither of these entail set extensionality. Using the set theoretic Curry–Howard semantics, we then showed that not only is set extensionality independent of uniqueness of identity proofs, but set theory, at least with extensionality, is incompatible with weak propositional extensionality. This is a consequence of proof relevance together with the absence of weaker forms of identity in classical logic.

7 Intensionality in HoTT

Martin-Löf (2015) has explained that the use of the word “intensional” for a non-propositional form of identity was influenced by a footnote in Gödel’s Dialectica paper:

Identität zwischen Funktionen ist als intensionale oder Definitionsgleichheit zu verstehen.Footnote 18

A related use of “intensional” as a synonym for “definitional” appears in e.g. Tait (1967), who Martin-Löf also refers to in his work. In conversation, Martin-Löf has said that he currently does not approve of such a use, since he believes that intensional equality should be equality of meaning, while definitional equality is a purely syntactic concept (Martin-Löf 2015). We have so far followed the earlier—Gödelian—tradition here in not specifically requiring a connection between intensionality and meaning, but simply focused on non-extensionality. The members of the Univalent Foundations program seem to interpret HoTT’s intensionality in a rather similar way:

Intensional type theory is so named because its judgmental equality, \(x \equiv y\), is a very intensional equality: it says essentially that x and y “have the same definition”, after we expand the defining equations of functions. By contrast, the propositional equality type \(x = y\) is more extensional, even in the axiom-free intensional type theory [...] we can prove by induction that \(n + m = m + n\) for all \(m, n \mathrel {\; : \;}\mathbb {N}\), but we cannot say that \(n + m \equiv m + n\) for all \(m, n \mathrel {\; : \;}\mathbb {N}\), since the definition of addition treats its arguments asymmetrically. (Univalent Foundations Program 2013, p. 102)

The notation ‘\(x = y\)’ used here is an abbreviation for the type \(\mathop {\mathsf {Id}}_A(x, y)\), where \(x, y \mathrel {\; : \;}A\). It is understood that a type theory (or perhaps a logic) is intensional if it makes a difference between extensional and intensional identity, and that having the same definition is a relation that is strictly stronger than mere coextensionality.Footnote 19 The appearance of quotation marks around ‘have the same definition’ in the quote, however, indicates that this is an informal characterisation using an analogy.

From a \(\lambda \)-calculus point of view, there is a formal version of it which says that \(a \equiv b \mathrel {\; : \;}X\) iff \(a, b \mathrel {\; : \;}X\) and a and b reduce to the same term by applying \(\beta \)-reduction, i.e. application of a function to its arguments (Univalent Foundations Program 2013, p. 422). The existence of a propositional equality \(p \mathrel {\; : \;}\mathop {\mathsf {Id}}(a, b)\) does not ensure that a and b can be rewritten as the same term in this way. This is an explanation in terms of syntax, which does not mention HoTT’s semantics. As we have already said, \(a \equiv b : X\) holds iff a and b refer to precisely the same point of the space X, and \(p: \mathop {\mathsf {Id}}_X(a, b)\) holds if p is a path from a to b. This would indicate that a term’s intension in HoTT can be seen as a point of a space X, and its extension as a path-connected component of X. Similarly, a type’s intension would be a space and its extension a homotopy type. Both of these choices conform to the Fregean principle that intension (or meaning) is to serve as a way to present extension, so that the same extension may be presented in many different ways. For terms, these ways are represented by points, and for types, by specific topological spaces.

Collecting these suggestions in a table gives us the following:

 

Intension

Extension

Term

Point

Path-connected component

Type

Topological space

Homotopy type

Of course, not any space can be assigned to any type. For example, identity types will have to be assigned path spaces, dependent types fibrations, etc. In any case, our interpretation would seem to validate the Fregean priciple that intension determines extension.Footnote 20 Somewhat surprisingly, what it does not show is that HoTT is semantically non-extensional in our sense. Since all functions are continuous, it follows that if s is path-connected to t, then f(s) will be path-connected to f(t), so function application preserves coextensionality. Likewise, the type forming operations we have, such as making product spaces or fibrations, also satisfy the requirement that applying them to homotopy equivalent spaces yield homotopy equivalent results. Thus intensions do not matter when the extensions of terms and types are to be determined, which is exactly what semantic extensionality says should make these things extensional.

To find intensionality we have to go further and consider not only terms and types, but also judgments. There are two kinds of these that we have discussed: the typing judgment \(a \mathrel {\; : \;}A\) and the equality judgment \(a \equiv b \mathrel {\; : \;}X\). Following the practice of Sect. 5, we will take judgments to be coextensional when they are both true or both false, with truth determined by the semantics we outlined in the beginning of Sect. 4. That is, \(a \mathrel {\; : \;}A\) is true iff a is a point in the space A, and \(a \equiv b \mathrel {\; : \;}X\) is true iff a and b are the same point, and this point is in the space X.

Beginning with the typing judgment, we can quickly see that replacement of coextensional terms will not change a judgment’s truth value: if \(a \mathrel {\; : \;}A\), then we must also have \(a' \mathrel {\; : \;}A\) for any point \(a'\) which is path-connected to a, since a prerequisite for there to be a path between two points is that they are in the same space. On the other hand, a space A being homotopy equivalent to a space B is not sufficient for them to have the same points, so we may very well have \(a \mathrel {\; : \;}A\) and \(p \mathrel {\; : \;}\mathop {\mathsf {Id}}_\mathcal {U}(A, B)\), but not \(a \mathrel {\; : \;}B\).

Equality judgments also violate replacement salva veritate of coextensional types. But they do not permit replacement of coextensional terms either, since the truth of \(a \equiv b \mathrel {\; : \;}X\) under the semantics we used depends on the exact identity of the points a and b refer to, rather than merely whether there is a path between them. So, if our proposed interpretation of coextensionality of judgments is correct, we have found a sense in which HoTT is indeed semantically intensional.

There is a possible source of confusion here, however. What we have done in taking a judgment’s extension to be a truth value is essentially to pass over to the substitutional version of extensionality, and shown that HoTT does not satisfy this. But, as we said in Sect. 2, HoTT satisfies something rather close to substitutional extensionality: the indiscernibility of identicals. As we described it, this consequence of the rules of propositional identity in intensional type theory lets us construct an element of a dependent type C(y) given an element of C(x) and an identity \(p \mathrel {\; : \;}\mathop {\mathsf {Id}}_A(x, y)\). Since the existence of an element of C(y) is interpreted as y having the property C, this would mean that \(p \mathrel {\; : \;}\mathop {\mathsf {Id}}_A(x, y)\) is sufficient for x and y to have the same properties. But how can things have the exact same properties while still giving rise to failures of substitutivity?

The answer is that a property, interpreted according to the Curry–Howard correspondence, is not the same thing as a type of HoTT. Indeed, they are not even part of the same language, strictly speaking. Recall our insistence in the last section that the Curry–Howard correspondence should really be seen as a semantics. Then property and proposition are concepts of the object language, while type is of the metalanguage. To be more precise, the object language, although it uses symbols from the metalanguage, is just a many-sorted first order logic, and does not use the judgmental form of equality or equalities between properties (Univalent Foundations Program 2013, pp. 4144, 118). This is why it satisfies substitution extensionality, while the full type theory of the metalanguage does not, and it is also why the \(\sim \) denoting analogy between substitutional extensionality and the indiscernibility of identicals in Fig. 7 is greyed out: although they may be glossed similarly, they are very different concepts that apply to different systems. A similar phenomenon happens in Tarskian first-order semantics when we do not take identity to be logical, so that it can denote any congruence relation on the model. In such a case, we will still have full substitutivity of identicals in the object language, but can have failure of substitutivity in the metalanguage, i.e. we can have that \(\mathfrak {M} \vDash s = t\) with s and t denoting different elements of \(\mathfrak {M}\)’s domain.

Having examined the relationship between HoTT and semantic and substitutional extensionality, we will now briefly consider the other analogies in Fig. 7. Weak propositional extensionality, as we noted in the last section, is incompatible with the Curry–Howard semantics as implemented in set theory. This fact, which depends on classical logic’s lack of weaker forms of identity, also affects possible interpretations of the univalence axiom itself in set theory. To show this, we make a simple translation of this axiom: we say that a set theory is univalent iff, for any two sets a and b such that there are functions \(f: a \rightarrow b\) and \(g: b \rightarrow a\) such that \(g \circ f = \Delta a\) and \(f \circ g = \Delta b\), where \(\Delta a\) and \(\Delta b\) are the identity functions on a and b, we have that \(a = b\).

Proposition 3

Any univalent extension of ZF is inconsistent.Footnote 21

Proof

For the necessary functions f and g to exist, it is clearly sufficient that g should be the inverse of f. But the existence of such functions is guaranteed merely by a and b having the same cardinality, so a univalent set theory must identify all sets of the same cardinality. Any extension of ZF, however, validates e.g. \(\{\emptyset \} \ne \{\{\emptyset \}\}\). \(\square \)

Function extensionality offers a very different circumstance: it is compatible with both set theory and HoTT. In set theory, it follows from set extensionality, and in HoTT it follows from univalence (Univalent Foundations Program 2013, pp. 144–146), and in both cases, the converse does not hold. It thus supplies an example of where Univalence in HoTT actually plays the same role as extensionality does in set theory, and highlights how complex the relationships we are investigating really are.

Uniqueness of identities also points to this: we have split this concept into two, but in HoTT it is not obvious that this is a meaningful distinction to make. Uniqueness of identity proofs and uniqueness of identity relations in HoTT are just different interpretations of the same condition, at least insofar as we do not modify the Curry–Howard correspondence to interpret identities in terms of truncated types, as was indicated in the previous section. On the other hand, in set theory, one of them follows from set extensionality, while the other does not.

In fact, set extensionality itself provides a curious case. In any type theory, the common membership of even a single entity is sufficient to make types identical, while set extensionality requires common membership of all elements. In fact, even the propositional identity of a and b is enough to make any type they are in judgmentally equal. Thus intensional type theory, even without any additional axioms such as univalence, is in one way far more extensional than set theory—at least when ‘extensional’ is interpreted in the sense of the set theoretic axiom of extensionality.

Summing up, we have seen that the relationships between traditional forms of extensionality and those of HoTT are far from straightforward. The most promising connection we have found may be between semantic extensionality and the intension-extension characterisation of the HoTT semantics we sketched in this section, although this connection shows up only when we extend the semantics to also cover judgments. The intensionality of HoTT as a system comes from not having the extensional rule of = elimination, which would make propositional and judgmental identities logically equivalent. However, semantic extensionality is a rather thin concept, and it would be useful to see if we can work out this connection in more detail. This will be purpose of the next section.

8 Extensionality in modal logic

One characterisation of the divide between intensional and extensional sentences was made by Carnap (1956), primarily as an explication of ideas of Frege. The fundamental principle is, much as for Quine, who as we noted championed a version of substitutional extensionality, that \(\varphi \) is an extensional context if no replacement of coreferential terms can change the truth value of a sentence they appear in. An intensional context is one where this does not need to hold, but where substitutivity salva veritate among intensionally equivalent terms still holds. For Carnap, such an intensional equivalence is given by the identity of the individual concepts that are associated with the equivalent terms.

What sets this notion apart from Quine’s is its very close relation to modality: in Carnap’s logic, intensional equivalence is the same as necessary equivalence, so that we have that \(\Box (\varphi \leftrightarrow \psi )\) is true iff \(\varphi \) and \(\psi \) are intensionally equivalent, i.e. have the same intension. In the specific case of identity, this entails that s and t are intensionally equal iff \(\Box s = t\) holds. We will call a modal logic weakly extensional iff it validates the inference rule \(s = t \dashv \vdash \Box s = t\), i.e. if it makes no difference between necessary and contingent equality. That this is not the same as extensionality tout court can be seen from the existence of the Kripkean theory of equality as always being necessary without having all other modal distinctions (e.g. between sentences) collapse. However, since weak extensionality will be the concept that corresponds best to the one in HoTT, we will from here on use the word ‘extensional’ simply as an abbreviation for ‘weakly extensional’. This usage also fits far better with our connection to Carnap, for whom a modal logic in which identity between terms was always necessary would lose much of its point.

The connection through modal logic is promising not least because modal logic and topology have been known, since at least McKinsey and Tarski (1944), to go very well together. We want to use this fact to build up a sequence of logical relationships

Classical logic \(\sim \) Modal logic \(\sim \) Topological Semantics \(\sim \) HoTT

that allow us to compare notions—such as extensionality—in classical or modal logic directly to those in HoTT. Our goal in this section is to show that the same condition on the topological semantics makes both the classical-style modal logic we will describe here and HoTT extensional.

For our purposes it is easiest to limit ourselves to a monadic first-order modal logic \(\mathcal {L}\), which we also take to have an existence predicate \(\mathop {\mathsf {E}}\).Footnote 22 Let a model \(\mathfrak {M}\) of \(\mathcal {L}\) be a triple \(\langle \mathcal {O}, \mathop {\mathsf {ref}}, \Omega \rangle \) where

(i):

\(\mathcal {O}\) is a nonempty \(T_0\) topological spaceFootnote 23 which we will call the ontology,

(ii):

\(\mathop {\mathsf {ref}}\) is a function from the individual constants of \(\mathcal {L}\) to points in \(\mathcal {O}\),

(iii):

\(\Omega \) is the set of all functions \(\omega : Pred \rightarrow \wp \mathcal {O}\), where Pred is the set of predicates in \(\mathcal {L}\), such that for each \(P \in Pred\) we have that

(a):

\(\omega (P)\) is open in \(\mathcal {O}\) and

(b):

\(\omega (P) \subseteq \omega (\mathop {\mathsf {E}})\).

We call the elements of \(\Omega \) worlds since they correspond to distributions of properties–including existence—among possible entities. The open subsets of \(\Omega \) can be interpreted as possible properties, e.g. ones whose potential extensions are well-defined enough. The conditions on topological spaces then say that if P can have any number of extensions, then the union of these is also a possible extension, and if P can have two extensions X and Y, then \(X \cap Y\) is also a possible extension. The function \(\mathop {\mathsf {ref}}\) is known as the reference function. Note that it is not world relative, so individual constants are rigid. We will see that there are still models that are not weakly extensional.

Let a variable assignment s on \(\mathfrak {M}\) be a function from variables of \(\mathcal {L}\) to points in \(\mathcal {O}\), and let a valuation v be the union of a variable assignment and the function \(\mathop {\mathsf {ref}}\). As usual, we write v[c / x] for the valuation which is like v except for a replacement of the value at x with c.

The truth conditions are mostly straightforward:

$$\begin{aligned} \mathfrak {M}, \omega \vDash _v P(t)\Leftrightarrow & {} v(t) \in \omega (P) \\ \mathfrak {M}, \omega \vDash _v \lnot \varphi\Leftrightarrow & {} \mathfrak {M}, \omega \nvDash _v \varphi \\ \mathfrak {M}, \omega \vDash _v \varphi \wedge \psi\Leftrightarrow & {} \mathfrak {M}, \omega \vDash _v \varphi \text { and } \mathfrak {M}, \omega \vDash _v \psi \\ \mathfrak {M}, \omega \vDash _v \varphi \vee \psi\Leftrightarrow & {} \mathfrak {M}, \omega \vDash _v \varphi \text { or } \mathfrak {M}, \omega \vDash _v \psi \\ \mathfrak {M}, \omega \vDash _v \varphi \rightarrow \psi\Leftrightarrow & {} \mathfrak {M}, \omega \nvDash _v \varphi \text { or } \mathfrak {M}, \omega \vDash _v \psi \\ \mathfrak {M}, \omega \vDash _v \forall x \varphi\Leftrightarrow & {} \mathfrak {M}, \omega \vDash _{v[c / x]} \varphi \text { for all } c \in \omega (\mathop {\mathsf {E}}) \\ \mathfrak {M}, \omega \vDash _v \exists x \varphi\Leftrightarrow & {} \mathfrak {M},\omega \vDash _{v[c / x]} \varphi \text { for some } c \in \omega (\mathop {\mathsf {E}}) \\ \mathfrak {M}, \omega \vDash _v \Box \varphi\Leftrightarrow & {} \mathfrak {M}, \omega ' \vDash _v \varphi \text { for all } \omega ' \in \Omega \\ \mathfrak {M}, \omega \vDash _v \Diamond \varphi\Leftrightarrow & {} \mathfrak {M}, \omega ' \vDash _v \varphi \text { for some } \omega ' \in \Omega \\ \end{aligned}$$

From these is follows that atomic formulae with non-denoting terms are always false. We have followed Carnap in taking \(\Box \) to express the global modality, i.e. truth in every world. Free variables range over all possibilities, but the quantifiers only range over that which exists.

To model identity we will need to introduce a new concept. Let the entity space \(\mathcal {E_O}(\omega )\) of a world \(\omega \) in the ontology \(\mathcal {O}\) be the coarsest topological space that results from adding all sets \(\omega (P)\) to \(\mathcal {O}\)’s closed sets. In this space, every extension of a predicate is not only open, but clopen (i.e. both closed and open). This, in turn, entails that \(\mathcal {E_O}(\omega )\) will be partitioned into maximally connected subspaces, each of which has elements that have the same distribution of properties, as illustrated in Fig. 8.

Intuitively, one can think of the ontology \(\mathcal {O}\) of a model as a vaguely defined “slum of possibilities” in Quine’s sense (Quine 1961a), without firm identity conditions on its constituents. A world \(\omega \) is a specification of which chunks of possibility instantiate which properties, including existence, and \(\omega \)’s entity space is the existing part of possibility cut up into well-individuated entities, where the individuation is done based on the properties assigned by \(\omega \).

Write \(a \sim _\omega b\) when there is a path from a to b in the space \(\mathcal {E_O}(\omega )\), and let the truth condition for identity formulae be

$$\begin{aligned} \mathfrak {M}, \omega \vDash _v s = t \text { iff } v(s) \sim _\omega v(t) \end{aligned}$$
Fig. 8
figure 8

Going to entity space

From the fact that the clopen sets in a topological space are the unions of its (path-)connected components, together with our definition of \(\mathcal {E_O}(\omega )\), we get that if \(a \sim _\omega b\), then \(a \in \omega (P)\) iff \(b \in \omega (P)\) for all \(a, b \in \mathcal {O}\) and \(P \in Pred\). By the truth condition we have imposed it follows that the substitutivity of identicals is valid:

$$\begin{aligned} \mathfrak {M}, \omega \vDash _v (s = t \wedge \varphi (s)) \rightarrow \varphi (t) \end{aligned}$$

As is easily checked, we do not have weak extensionality. But while identity between terms thus does not guarantee strict identity between the terms’ referents, we can show that necessary identity does:

Proposition 4

\(\mathfrak {M}, \omega \vDash _v \Box s = t\) iff \(v(s) = v(t)\).

Proof

The right-to-left direction follows from the existence of the constant path \(r: v(s) \rightarrow v(t)\) together with the fact that we have taken singular terms to be rigid. For the converse, assume that \(v(s) \ne v(t)\). Because of the \(T_0\) condition there must then be some open set S such that \(v(s) \in S\) and \(v(t) \notin S\), or vice versa. Since all open sets are possible properties, there is therefore some world \(\omega '\) where \(S = \omega '(\mathop {\mathsf {E}})\), and because \(\mathcal {E_O}(\omega )\) therefore must have S not only open but also closed, there can be no path between v(s) and v(t) in \(\mathcal {E_O}(\omega )\), so they cannot be equal. \(\square \)

Corollary 1

\(\mathfrak {M}, \omega \vDash _v \Box \forall x \; (P(x) \leftrightarrow Q(x))\) iff \(\omega (P) = \omega (Q)\).

Corollary 2

\(\mathfrak {M}, \omega \vDash _v \Box s = t\) iff \(\mathfrak {M}, \omega \vDash _v \Box (\varphi (s) \leftrightarrow \varphi (t))\).

Call a model \(\mathfrak {M}\) extensional iff \(\mathfrak {M} \vDash _v s = t \rightarrow \Box s = t\), and disconnected iff its ontology is a totally path disconnected space, i.e. one in which the only path connected components are singletons. With these preliminary remarks in place, and the following lemma, we can state the main result of this section:

Lemma 1

A model \(\mathfrak {M}\) is extensional iff it is disconnected.

Proof

Assume that \(\mathcal {O}\) is totally disconnected. Then, whenever we have that v(s) is path connected to v(t), we also have that \(v(s) = v(t)\), which by Proposition 4 entails that \(\mathfrak {M}, \omega \vDash _v s = t \rightarrow \Box s = t\). Conversely, assume that there are elements a, \(b \in \mathcal {O}\) such that \(a \ne b\) but \(a \sim _\omega b\) for some world \(\omega \). Let v be a valuation such that \(v(s) = a\) and \(v(t) = b\). Then it follows, again by Proposition 4, that although we by assumption have \(\mathfrak {M}, \omega \vDash _v s = t\), we cannot have \(\mathfrak {M}, \omega \vDash _v \Box s = t\). \(\square \)

Theorem 2

Let A be a type in HoTT modeled by the ontology \(\mathcal {O}\) of the model \(\mathfrak {M}\). Then the following are equivalent:

  • A has judgmentally unique identities.

  • \(\mathfrak {M}\) is extensional.

Proof

From the semantics of the propositional identity types we have that \(p \mathrel {\; : \;}\mathop {\mathsf {Id}}_A(a, b)\) iff p is a path \(a \rightarrow b\). But if A is totally path disconnected there can be only one such path, namely the constant path. Conversely, assume that p is a path from a to b, and q is a path from b to a. If \(a = b\) and p is not the constant path, there must be some \(t \in [0, 1]\) such that \(p(t) \ne a\), and thus paths \(p_1 : a \rightarrow p(t)\) and \(p_2 : p(t) \rightarrow a\), so it suffices to consider the case \(a \ne b\). But if \(a \ne b\) there will always be at least a countable infinity of other paths from a to b, e.g. \(p_1 = p \circ q \circ p\), \(p_2 = p \circ q \circ p \circ q \circ p\), etc. Thus \(\mathop {\mathsf {Id}}_A(a, b)\) must have more than one element. The result follows by applying Proposition 1. \(\square \)

We have thus finally managed to set up a connection between a version of HoTT’s concept of extensionality and a more traditional interpretation thereof. That our conception is a version of Carnap’s intension-extension distinction can be seen by, like Carnap, defining having the same intension as the truth of \(\Box (\varphi \leftrightarrow \psi )\) for sentences, \(\Box s = t\) for terms, and \(\Box \forall x \; (P(x) \leftrightarrow Q(x))\) for predicates. It follows that the intension of a term correlates uniquely to a point, like in the HoTT interpretation of the previous section. The ontology itself, being a topological space X, naturally corresponds to a type in HoTT, and the extension of a predicate P, as a subset of X, can easily be interpreted as a specification of which fibres of a dependent type \(P' \mathrel {\; : \;}X \rightarrow \mathcal {U}\) are non-empty, i.e. those objects to which the property \(P'\) applies.Footnote 24

To be sure, we have only described a very simple toy model—in fact a version of the setoid interpretation of types (Hofmann 1995, pp. 159–185) dressed up in topological clothing—and it is quite possible that there is a limit to how far it can be taken. Consequently, what we can say so far is merely that our modal logic and HoTT are similar by having similar semantics (i.e. ones in terms of topological spaces and paths), rather than that we can see them to be equivalent in some deeper sense. And in fact, there are important differences between HoTT and the logic we have discussed here which makes such deeper equivalence unlikely. In particular, HoTT is far more expressive: the logic we outlined, like all other classical logics, is not proof relevant. The concept of homotopy, which is arguably one of the most central ones in HoTT (as can be seen from e.g. the name!) does not appear in our semantics at all, so we have not been able to see what univalence would mean for us. While it would be possible, and perhaps also worthwhile, to extend the semantics sketched here in order to strengthen the similarities between classical modal logic and HoTT, we will stop here for now.

9 Discussion

If nothing else, the last sections should illustrate that the question of HoTT’s intensionality is highly complex. While we have supplied a collection of logical models for making comparisons between different conceptions of intensionality and extensionality, there seems to be fairly little in common between these. As was announced at the beginning, these are at most some preliminary investigations. With that in mind, we will still attempt to say something about philosophical questions that may have arisen.

As one of the primary inventions of HoTT is its interpretation of identity, one of these philosophical questions would be if that concept is still identity in a sufficiently similar sense to an informal notion to be useful for philosophy. Quine famously argued that all differences in logical systems were down to different meanings assigned to the systems’ sentences and logical constants (Quine 1986). Thus, for example intuitionistic logic is about informal provability rather than truth or falsity, i.e. ‘p’ in intuitionistic logic means ‘p is provable’ while ‘p’ in classical logic means ‘p is true’. The intuitionistic conjunction \(p \vee q\) means ‘p or q are provable’, while the classical means ‘p or q is true’. If the classical-logical meaning were the one we commonly use and mean by ‘identity’, this would entail that the concept of identity used in HoTT is simply not real identity, but something else.

A related question arises from the indiscernibility of identicals as expressed in HoTT. Under the interpretation of properties as dependent types, this does indeed say that identical objects have the same properties. Insofar as properties are dependent types, such a characterisation is definitely closer to Leibniz’s original version of the principle than the contemporary one about predicates, formulae and satisfaction. But are propositions really types, and are properties really type families?

The present Quinean argument against interpreting propositional equality as identity, explicitly spelled out, would be that unless a relation guarantees substitutivity salva veritate, it is not identity. Such arguments have previously been used e.g. to say that identity over time is not true identity (in support of 4-dimensionalism), and that identity across worlds is not true identity (in support of counterpart semantics).

We should note that for judgmental equality, full substitutivity holds by the inference rules assumed for this judgment type (Univalent Foundations Program 2013, p. 427). It is propositional identity that poses problems, and the Quinean argument would be in support of the thesis that \(p \mathrel {\; : \;}\mathop {\mathsf {Id}}_X(a, b)\) does not say, nor even entail, that a and b are identical.

Now, the existence of a propositional identity \(p \mathrel {\; : \;}\mathop {\mathsf {Id}}_X(a, b)\) does not show that the structures defined in terms of a are strictly the same as those defined in terms of b, but rather that we can transport, or perhaps translate, structures defined in terms of a to ones defined in terms of b in an appropriate way.Footnote 25 An inference such as

figure c

cannot be valid since P(a) may be a different type than P(b), which means that they can have no elements in common. This does not mean that they cannot be propositionally equal, and indeed the univalence axiom guarantees that they are. We may refer to the kind of substitutivity that allows the replacement of any term with another equal to it as syntactic since it does not rely on any specific interpretation of types but rather means that the terms on both sides can be rewritten, using syntactic rules, so that they come out as literally the same.

Since judgmental equality allows full syntactic substitutivity, it may at first seem like this is the concept that has the most in common with equality in classical logic. But judgmental equality also lacks many features that the ‘\(=\)’ predicate has. Foremost among these is its inability to be embedded in terms or types, which makes it far less versatile, and rather indicates that although it may look like classical identity, it does not do the job that this concept does. Propositional identity, in contrast, can do more of the things we use classical identity for and also, according to the interpretation given in Sect. 7, signifies sameness of extension. Insofar as we take the classical identity \(a = b\) to also mean that a and b have the same extension, we therefore have an argument for the primacy of propositional identity when comparing HoTT to classical logic.

Furthermore, although propositional identity does not give full syntactic substitutability on the syntactic level, the Curry–Howard interpretation implies that it embodies another version of Leibniz’s law, as shown in the fact that it satisfies the indiscernibility of identicals. Unlike syntactic substitutability, this semantic substitutivity does not guarantee that symbols can be replaced, but only that the truth values of propositions under the Curry–Howard correspondence are the same. It thus relies on this specific interpretation of a type’s reference or extension.

I think complications such as these should be taken as an indication that the question of which is the “real” identity in HoTT may be pointless. Informal language is vague and mutable, and to draw conclusions about logical concepts from it is hazardous, to say the least. Especially when it comes to a locution such as is the same as, the possible meanings seem almost inexhaustible, and there are good reasons to hold that the ones embodied in classical predicate logic are some of the lesser used ones. This holds even in mathematics, for whose purpose that logic was created: a mathematical uniqueness proof, for example, only very rarely shows that something is unique in the sense of the ‘=’ of predicate logic.

Luckily, finding the “true” concept of identity is not what we were after here. What is important is to what degree the concept can be used for the job it has been introduced to do. Sometimes parts of this job will involve replacing informal concepts in certain contexts, but sometimes it consists in purely technical applications: one may compare with the concept of ‘energy’ in physics, which has many uses in the subject’s theories, but very few connections to pretheoretical notions with the same name.Footnote 26

The primary subjects to which HoTT is to be applied are mathematics and logic, and here there can be few doubts that its conceptions of identity, property and proposition can do the work we want them to since they all reduce to traditional notions when we add axioms such uniqueness of identities or the excluded third. Arguing that they are more useful than traditional notions requires showing how they can be used to solve problems or explain relationships that the traditional notions cannot. So far, it seems quite likely that this is indeed the case. But even if this should not hold, nothing forces us to have one notion of identity: formal systems are not themselves weapons of imperialism, although some of their advocates may occasionally try to use them as such.

So much for mathematics and logic. For philosophers, it would be particularly interesting to see how the homotopy-theoretical concepts of identity, property and proposition can be useful for our subject as well; according to the pragmatic conception of formal systems advocated here this will indeed be the primary motivation for their acceptance. Although I will not try to take up Harris’s suggestion, in the quote we started with, that the philosophy behind “identity politics” will be challenged by HoTT, I still want to end this paper by sketching a few ideas regarding possible applications HoTT to important philosophical problems.

Because of intensionality’s strong connection to identity, we have placed a special focus on this concept. Classical-logical identity, under the standard Tarskian semantics, is a rather trivial affair; in first-order logic it is arguably useful for little more than counting. In contrast, the propositional identities of HoTT allow one to model a lot of structural relationships. For example, it is possible that one could use them to give a theory of family resemblances in Wittgenstein’s sense. This would be done by letting a path \(a \rightarrow b\) represent exact similarity in a respect between a and b, and the composition of paths \(f: a \rightarrow b\) and \(g: b \rightarrow c\) a family resemblance. For example, f might model sameness of eye colour, and g sameness of hair colour.

This could, in itself, easily lead to trivialities since such chains usually can be set up between any two entities. But identity in HoTT is not a yes or no question, but a higher-order structure. That some family resemblance holds between any two entities does not imply that identity is trivial, since specific identities are what count. In terms of homotopy theory, the fact that two spaces are both path-connected does not imply that they are even homotopically the same: path-connectedness takes into account only the one-dimensional structure of a space. Similarly, higher-order identities between identities may be used in order to represent exact similarities between similarities, which could result in a way to describe properties in a purely structural manner.

This connection to structuralism points rather naturally to another possible application. What if one were to use HoTT to build a version of Carnap’s Aufbau (2003)? One of Carnap’s main goals was a structuralist one, namely to show how scientific knowledge can be represented purely in terms of logical structure, without having to assume prior interpretations of autopsychological predicates. As he knew, what has become known as the Newman objection makes this impossible in classical logic, since versions of this language without interpreted predicates—even in higher-order logic—can only distinguish between cardinalities. HoTT, on the other hand, can be used to represent topological spaces in all their (homotopy-invariant) complexity. At least the homotopy invariant topological structure of the world should therefore be possible to capture using only the logical machinery of HoTT.Footnote 27

HoTT also has an additional advantage as a language for projects such as the Aufbau: its amenability to computer implementation. Indeed, one of the motivating factors in the design of UF has been to make possible a fully formalised, completely rigorous approach to mathematics. To this purpose most of the mathematics developed in HoTT has been written in proof assistants such as Coq and Agda. This allows philosophers to build on these results and thereby gain access to an ever growing supply of mathematical structures. Developing an Aufbau-style project using HoTT, using libraries of such and further results, would not only ensure a greater level of exactness than was available to Carnap, but also aid in making the project possible to carry out as a collaborative effort. Computer-implemented proofs and definitions can be efficiently managed via version control systems, much like large programming projects. Such systems can be used to keep every participant’s assumptions explicit, and to make it far clearer which parts of different philosophers’ works are compatible, which build upon one another, and which are contradictory.

Moving on to HoTT’s representation of properties as type families, we may note that such a representation could be useful for philosophical notions of properties as well. Since a type family \(P \mathrel {\; : \;}A \rightarrow \mathcal {U}\), under the topological interpretation, is a fibration which assigns a (possibly empty) topological space to each point of a type A, these spaces can be seen as determinables, e.g. mass, temperature, velocity etc. A dependent function \(f \mathrel {\; : \;}\prod _{x \mathrel {\; : \;}A} \; P(x)\) can then be interpreted as a specification of the precise values (e.g. 2 kg, 280 K, \(3\mathbf {e}_x + 2\mathbf {e}_y + 1\mathbf {e}_z \; \mathrm {m/s}\)) these determinables take. This connects nicely to how properties of space-time points are handled in general relativity and in gauge theories such as the standard model, which may be useful if one wishes to develop metaphysical frameworks that are applicable to contemporary physics as well.

As a final example, also from metaphysics, the Curry–Howard interpretation of propositions can be connected to truthmaker theory by taking each element of a proposition to be a truthmaker for it. This is quite natural in view of the strong similarities between truthmaker theory and the Brouwer–Heyting–Kolmogorov interpretation of intuitionistic logic, of which the Curry–Howard correspondence can be seen as a successor. But the topological structure of HoTT gives us more than that: it allows us to discuss relationships among truthmakers as well, thus potentially enhancing truthmaker theory’s use as a tool for inferring ontological structure from our theories.Footnote 28

For applications such as these it may also be appropriate to consider alternatives to univalence. Univalence corresponds to a structuralist principle of the form

$$\begin{aligned} \textit{homotopy equivalence} \Rightarrow \textit{identity} \end{aligned}$$

but many other versions of the antecedent side of this conditional imaginable. Isomorphism, for example, is not the same as homotopy equivalence except in certain special categories such as \(\mathcal {T}\). A more direct isomorphism \(\Rightarrow \) identity principle would supposedly correspond to allowing the construction of a canonical identity proof \(i \mathrel {\; : \;}\mathop {\mathsf {Id}}_\mathcal {U}(X, Y)\) from judgmental identities \(g \circ f \mathrel {\equiv _{df.}}1_X \mathrel {\; : \;}\mathcal {U}\) and \(f \circ g \mathrel {\equiv _{df.}}1_Y \mathrel {\; : \;}\mathcal {U}\). Because it has a stronger antecedent, such a principle would be weaker than univalence.

Another possibility would be to insert more structure into the topological semantics in order to increase its expressiveness. Adding differential information to make types correspond to differential manifolds rather than bare topological spaces would make a physically correct treatment of time and space possible. In such a framework, the appropriate antecedent of the structuralist principle would be diffeomorphism. Since any differentiable manifold is a topological space, and any differential map is continuous, such spaces ought to still validate the inference rules of HoTT, with the exception of univalence. The interesting question concerns which further logical operations or principles might be possible to introduce based on the additional structure available.

All of these applications are admittedly very speculative. We do not know if any of them works until someone has attempted to work out their details, although I hope that they illustrate some of the possible uses homotopy type theory and univalent foundations, and their approach to identity, may have for philosophy. But the existence of this system also helps remind us of something even more important: the set-theoretic and classical-logical foundations that held such sway over twentieth century philosophy, and which continue to shape so much of our thinking, are only one possibility among many. Extensionality, intensionality, identity, proposition, and property are all concepts for which other, no less rigorous or coherent, frameworks are available for our use.Footnote 29