nLab interval type

Contents

Context

Type theory

natural deduction metalanguage, practical foundations

  1. type formation rule
  2. term introduction rule
  3. term elimination rule
  4. computation rule

type theory (dependent, intensional, observational type theory, homotopy type theory)

syntax object language

computational trinitarianism =
propositions as types +programs as proofs +relation type theory/category theory

logicset theory (internal logic of)category theorytype theory
propositionsetobjecttype
predicatefamily of setsdisplay morphismdependent type
proofelementgeneralized elementterm/program
cut rulecomposition of classifying morphisms / pullback of display mapssubstitution
introduction rule for implicationcounit for hom-tensor adjunctionlambda
elimination rule for implicationunit for hom-tensor adjunctionapplication
cut elimination for implicationone of the zigzag identities for hom-tensor adjunctionbeta reduction
identity elimination for implicationthe other zigzag identity for hom-tensor adjunctioneta conversion
truesingletonterminal object/(-2)-truncated objecth-level 0-type/unit type
falseempty setinitial objectempty type
proposition, truth valuesubsingletonsubterminal object/(-1)-truncated objecth-proposition, mere proposition
logical conjunctioncartesian productproductproduct type
disjunctiondisjoint union (support of)coproduct ((-1)-truncation of)sum type (bracket type of)
implicationfunction set (into subsingleton)internal hom (into subterminal object)function type (into h-proposition)
negationfunction set into empty setinternal hom into initial objectfunction type into empty type
universal quantificationindexed cartesian product (of family of subsingletons)dependent product (of family of subterminal objects)dependent product type (of family of h-propositions)
existential quantificationindexed disjoint union (support of)dependent sum ((-1)-truncation of)dependent sum type (bracket type of)
logical equivalencebijection setobject of isomorphismsequivalence type
support setsupport object/(-1)-truncationpropositional truncation/bracket type
n-image of morphism into terminal object/n-truncationn-truncation modality
equalitydiagonal function/diagonal subset/diagonal relationpath space objectidentity type/path type
completely presented setsetdiscrete object/0-truncated objecth-level 2-type/set/h-set
setset with equivalence relationinternal 0-groupoidBishop set/setoid with its pseudo-equivalence relation an actual equivalence relation
equivalence class/quotient setquotientquotient type
inductioncolimitinductive type, W-type, M-type
higher inductionhigher colimithigher inductive type
-0-truncated higher colimitquotient inductive type
coinductionlimitcoinductive type
presettype without identity types
set of truth valuessubobject classifiertype of propositions
domain of discourseuniverseobject classifiertype universe
modalityclosure operator, (idempotent) monadmodal type theory, monad (in computer science)
linear logic(symmetric, closed) monoidal categorylinear type theory/quantum computation
proof netstring diagramquantum circuit
(absence of) contraction rule(absence of) diagonalno-cloning theorem
synthetic mathematicsdomain specific embedded programming language

homotopy levels

semantics

Contents

Idea

The interval type is an axiomatization of the cellular interval object in the context of homotopy type theory.

Definition

As a higher inductive type, the interval is given by

Inductive Interval : Type
  | left : Interval
  | right : Interval
  | segment : Id Interval left right

This says that the type is inductive constructed from two terms in the interval, whose interpretation is as the endpoints of the interval, together with a term in the identity type of paths between these two terms, which interprets as the 1-cell of the interval

leftsegmentright. left \stackrel{segment}{\to} right \,.

Induction principle

The induction principle for the interval II says that for any P:ITypeP:I\to Type equipped with point left:P(left)left' : P(left) and right:P(right)right' : P(right) and a dependent identification segment:left= P segmentrightsegment':left'=_P^{segment} right', there is f: (x:I)P(x)f:\prod_{(x:I)} P(x) such that:

f(left)=leftf(right)=rightapd f(segment)=segmentf(left)=left' \qquad f(right)=right' \qquad apd_f(segment) = segment'

and for every y:Ig: (x:I)P(x)y:I \vdash g:\prod_{(x:I)} P(x) such that

y:Ig(y)(left)=lefty:Ig(y)(right)=righty:Iapd g(y)(segment)=segmenty:I \vdash g(y)(left)=left' \qquad y:I \vdash g(y)(right)=right' \qquad y:I \vdash apd_{g(y)}(segment) = segment'

there is an identification y:If=g(y)y:I \vdash f = g(y).

As a special case, its recursion principle says that given any type II with points x:Xx:X and y:Xy:X and an identification p:x=yp:x=y, there is f:IXf:I \to X with

f(left)=xf(right)=yap f(segment)=pf(left)=x\qquad f(right)=y\qquad ap_f(segment)=p

Syntax

The interval type is defined by the following rules:

Formation rules for the interval type:

ΓctxΓ𝕀type\frac{\Gamma \; \mathrm{ctx}}{\Gamma \vdash \mathbb{I} \; \mathrm{type}}

Introduction rules for the interval type:

ΓctxΓ0:𝕀ΓctxΓ1:𝕀ΓctxΓp:0= 𝕀1\frac{\Gamma \; \mathrm{ctx}}{\Gamma \vdash 0:\mathbb{I}} \qquad \frac{\Gamma \; \mathrm{ctx}}{\Gamma \vdash 1:\mathbb{I}} \qquad \frac{\Gamma \; \mathrm{ctx}}{\Gamma \vdash p:0 =_\mathbb{I} 1}

Elimination rules for the interval type:

Γ,x:𝕀C(x)typeΓc 0:C(0)Γc 1:C(1)Γc p:c 0= C pc 1Γ,x:𝕀ind 𝕀 C(c 0,c 1,c p)(x):C(x)\frac{\Gamma, x:\mathbb{I} \vdash C(x) \; \mathrm{type} \quad \Gamma \vdash c_0:C(0) \quad \Gamma \vdash c_1:C(1) \quad \Gamma \vdash c_p:c_0 =_C^p c_1}{\Gamma, x:\mathbb{I} \vdash \mathrm{ind}_\mathbb{I}^C(c_0, c_1, c_p)(x):C(x)}

Computation rules for the interval type:

Γ,x:𝕀C(x)typeΓc 0:C(0)Γc 1:C(1)Γc p:c 0= C pc 1Γβ 𝕀 0:ind 𝕀 C(c 0,c 1,c p)(0)= C(0)c 0\frac{\Gamma, x:\mathbb{I} \vdash C(x) \; \mathrm{type} \quad \Gamma \vdash c_0:C(0) \quad \Gamma \vdash c_1:C(1) \quad \Gamma \vdash c_p:c_0 =_C^p c_1}{\Gamma \vdash \beta_\mathbb{I}^{0}: \mathrm{ind}_\mathbb{I}^{C}(c_0, c_1, c_p)(0) =_{C(0)} c_0}
Γ,x:𝕀C(x)typeΓc 0:C(0)Γc 1:C(1)Γc p:c 0= C pc 1Γβ 𝕀 1:ind 𝕀 C(c 0,c 1,c p)(1)= C(1)c 1\frac{\Gamma, x:\mathbb{I} \vdash C(x) \; \mathrm{type} \quad \Gamma \vdash c_0:C(0) \quad \Gamma \vdash c_1:C(1) \quad \Gamma \vdash c_p:c_0 =_C^p c_1}{\Gamma \vdash \beta_\mathbb{I}^{1}:\mathrm{ind}_\mathbb{I}^{C}(c_0, c_1, c_p)(1) =_{C(1)} c_1}
Γ,x:𝕀C(x)typeΓc 0:C(0)Γc 1:C(1)Γc p:c 0= C pc 1Γβ 𝕀 p:apd C(p,ind 𝕀 C(c 0,c 1,c p))= c 0= C pc 1c p\frac{\Gamma, x:\mathbb{I} \vdash C(x) \; \mathrm{type} \quad \Gamma \vdash c_0:C(0) \quad \Gamma \vdash c_1:C(1) \quad \Gamma \vdash c_p:c_0 =_C^p c_1}{\Gamma \vdash \beta_\mathbb{I}^{p}:\mathrm{apd}_C(p, \mathrm{ind}_\mathbb{I}^{C}(c_0, c_1, c_p)) =_{c_0 =_C^p c_1} c_p}

Uniqueness rules for the interval type:

Γ,x:𝕀C(x)typeΓ,x:𝕀c:C(x)Γ,x:𝕀η 𝕀(c):c= C(x)ind 𝕀 C(c(0),c(1),apd C(p,c))\frac{\Gamma, x:\mathbb{I} \vdash C(x) \; \mathrm{type} \quad \Gamma, x:\mathbb{I} \vdash c:C(x)}{\Gamma, x:\mathbb{I} \vdash \eta_\mathbb{I}(c):c =_{C(x)} \mathrm{ind}_\mathbb{I}^{C}(c(0), c(1), \mathrm{apd}_C(p, c))}

Using a function from the two-valued type

The interval type is defined by the following rules:

Formation rules for the interval type:

ΓctxΓ𝕀type\frac{\Gamma \; \mathrm{ctx}}{\Gamma \vdash \mathbb{I} \; \mathrm{type}}

Introduction rules for the interval type:

Γa:𝟚Γj(a):𝕀Γ0:𝟚Γ1:𝟚Γp:j(0)= 𝕀j(1)\frac{\Gamma \vdash a:\mathbb{2}}{\Gamma \vdash j(a):\mathbb{I}} \qquad \frac{\Gamma \vdash 0:\mathbb{2} \quad \Gamma \vdash 1:\mathbb{2}}{\Gamma \vdash p:j(0) =_\mathbb{I} j(1)}

Elimination rules for the interval type:

Γ,x:𝕀CtypeΓ,a:𝟚c:C[j(a)/x]Γ0:𝟚Γ1:𝟚Γc p:c[j(0)/x]= C pc[j(1)/x]Γ,x:𝕀,a:𝟚ind 𝕀 C(c[j(a)/x],c p):C\frac{\Gamma, x:\mathbb{I} \vdash C \; \mathrm{type} \quad \Gamma, a:\mathbb{2} \vdash c:C[j(a)/x] \quad \Gamma \vdash 0:\mathbb{2} \quad \Gamma \vdash 1:\mathbb{2} \quad \Gamma \vdash c_p:c[j(0)/x] =_C^p c[j(1)/x]}{\Gamma, x:\mathbb{I}, a:\mathbb{2} \vdash \mathrm{ind}_\mathbb{I}^C(c[j(a)/x], c_p):C}

Computation rules for the interval type:

Γ,x:𝕀CtypeΓ,a:𝟚c:C[j(a)/x]Γ0:𝟚Γ1:𝟚Γc p:c[j(0)/x]= C pc[j(1)/x]Γ,a:𝟚β 𝕀 j:ind 𝕀 C(c[j(a)/x],c p)[j(a)/x]= C[j(a)/x]c[j(a)/x]\frac{\Gamma, x:\mathbb{I} \vdash C \; \mathrm{type} \quad \Gamma, a:\mathbb{2} \vdash c:C[j(a)/x] \quad \Gamma \vdash 0:\mathbb{2} \quad \Gamma \vdash 1:\mathbb{2} \quad \Gamma \vdash c_p:c[j(0)/x] =_C^p c[j(1)/x]}{\Gamma, a:\mathbb{2} \vdash \beta_\mathbb{I}^{j}:\mathrm{ind}_\mathbb{I}^{C}(c[j(a)/x], c_p)[j(a)/x] =_{C[j(a)/x]} c[j(a)/x]}
Γ,x:𝕀CtypeΓ,a:𝟚c:C[j(a)/x]Γ0:𝟚Γ1:𝟚Γc p:c[j(0)/x]= C pc[j(1)/x]Γ,a:𝟚,β 𝕀 p:apd C p(ind 𝕀 C(c[j(a)/x],c p))= c[j(0)/x]= C pc[j(1)/x]c p\frac{\Gamma, x:\mathbb{I} \vdash C \; \mathrm{type} \quad \Gamma, a:\mathbb{2} \vdash c:C[j(a)/x] \quad \Gamma \vdash 0:\mathbb{2} \quad \Gamma \vdash 1:\mathbb{2} \quad \Gamma \vdash c_p:c[j(0)/x] =_C^p c[j(1)/x]}{\Gamma, a:\mathbb{2}, \vdash \beta_\mathbb{I}^{p}:\mathrm{apd}_C^p(\mathrm{ind}_\mathbb{I}^{C}(c[j(a)/x], c_p)) =_{c[j(0)/x] =_C^p c[j(1)/x]} c_p}

Uniqueness rules for the interval type:

Properties

  • An interval type is provably contractible. Conversely, any contractible type satisfies the rules of an interval type up to typal equality.

  • An interval type is a suspension type of the unit type, and the suspension of an interval type is a 2-globe type.

  • An interval type is a cone type of the unit type.

  • An interval type is a cubical type? 1\Box^1.

Relation to identity types

Every identity q:a= Abq:a =_A b between two terms a:Aa:A and b:Ab:A of a type AA has an associated term in context x:𝕀f(x):Ax:\mathbb{I} \vdash f(x):A, inductively defined by

  • β f 0:f(0)= Aa\beta_f^0:f(0) =_A a
  • β f 1:f(1)= Ab\beta_f^1:f(1) =_A b
  • β f p:ap f(p)= f(0)= Af(1)concat f(0),b,f(1)(concat f(0),a,b(β f 0,q),inv f(1),b(β f 1))\beta_f^p:\mathrm{ap}_f(p) =_{f(0) =_A f(1)} \mathrm{concat}_{f(0), b, f(1)}(\mathrm{concat}_{f(0), a, b}(\beta_f^0, q), \mathrm{inv}_{f(1), b}(\beta_f^1))

where

ap f:(0= 𝕀1)(f(0)= Af(1))\mathrm{ap}_f:(0 =_\mathbb{I} 1) \to (f(0) =_A f(1))

is the function application to identities,

concat a,b,c:(a= Ab)×(b= Ac)(a= Ac)\mathrm{concat}_{a, b, c}:(a =_A b) \times (b =_A c) \to (a =_A c)

is concatenation of identities (i.e. transitivity), and

inv a,b:(a= Ab)(b= Aa)\mathrm{inv}_{a, b}:(a =_A b) \to (b =_A a)

is the inverse of identities (i.e. symmetry).

Conversely, given a function f:𝕀Af:\mathbb{I} \to A and terms a:Aa:A and b:Ab:A with identities δ a:f(0)= Aa\delta_a:f(0) =_A a and δ b:f(1)= Ab\delta_b:f(1) =_A b, there is an identity

concat a,f(1),b(concat a,f(0),f(1)(inv f(0),a(δ a),ap f(p)),δ b):a= Ab\mathrm{concat}_{a, f(1), b}(\mathrm{concat}_{a, f(0), f(1)}(\mathrm{inv}_{f(0), a}(\delta_a), \mathrm{ap}_{f}(p)), \delta_b):a =_{A} b

Relation to dependent identity types

Given a type AA, a dependent type x:ABx:A \vdash B, terms a 0:Aa_0:A and a 1:Aa_1:A, identity q:a 0= Aa 1q:a_0 =_A a_1, terms b 0:B[a 0/x]b_0:B[a_0/x] and b 1:B[a 1/x]b_1:B[a_1/x], and dependent identity r:b 0= B qb 1r:b_0 =_B^q b_1, let us inductively define the family of elements x:𝕀f(x):B(x)x:\mathbb{I} \vdash f(x):B(x) by

  • β f 0:f(0)= B[a 0/x]b 0\beta_f^0:f(0) =_{B[a_0/x]} b_0
  • β f 1:f(1)= B[a 1/x]b 1\beta_f^1:f(1) =_{B[a_1/x]} b_1
  • β f p:apd f(p)= f(0)= B qf(1)concat trans B q(f(0)),b 1,f(1)(concat trans B q(f(0)),trans B q(b 0),b 1(apd trans B q(β f 0),r),inv f(1),b(β f 1))\beta_f^p:\mathrm{apd}_f(p) =_{f(0) =_B^q f(1)} \mathrm{concat}_{\mathrm{trans}_B^q(f(0)), b_1, f(1)}(\mathrm{concat}_{\mathrm{trans}_B^q(f(0)), \mathrm{trans}_B^q(b_0), b_1}(\mathrm{apd}_{\mathrm{trans}_B^q}(\beta_f^0), r), \mathrm{inv}_{f(1), b}(\beta_f^1))

where trans B q:B[a 0/x]B[a 1/x]\mathrm{trans}_B^q:B[a_0/x] \to B[a_1/x] is transport, ap f:(0= 𝕀1)(f(0)= Af(1))\mathrm{ap}_f:(0 =_\mathbb{I} 1) \to (f(0) =_A f(1)) is the function application to identities, concat a,b,c:(a= Ab)×(b= Ac)(a= Ac)\mathrm{concat}_{a, b, c}:(a =_A b) \times (b =_A c) \to (a =_A c) is concatenation of identities (i.e. transitivity), and inv a,b:(a= Ab)(b= Aa)\mathrm{inv}_{a, b}:(a =_A b) \to (b =_A a) is the inverse of identities (i.e. symmetry).

Relation to function extensionality

Postulating an interval type with judgmental computation rules for the point constructors of the interval type implies function extensionality. (Shulman).

The proof assumes a typal uniqueness rule for function types. First it constructs a function k:A(𝕀B)k:A \to (\mathbb{I} \to B) from a dependent function h: x:Af(x)= Bg(x)h:\prod_{x:A} f(x) =_B g(x), inductively defined by

  • β k(x) 0:k(x)(0)= Bf(x)\beta_{k(x)}^0:k(x)(0) =_B f(x)
  • β k(x) 1:k(x)(1)= Bg(x)\beta_{k(x)}^1:k(x)(1) =_B g(x)
  • β k(x) p:ap k(x)(p)= k(x)(0)= Bk(x)(1)concat k(x)(0),f(x),k(x)(1)(concat k(x)(0),f(x),g(x)(β k(x) 0,h(x)),inv k(x)(1),g(x)(β k(x) 1))\beta_{k(x)}^p:\mathrm{ap}_{k(x)}(p) =_{k(x)(0) =_B k(x)(1)} \mathrm{concat}_{k(x)(0), f(x), k(x)(1)}(\mathrm{concat}_{k(x)(0), f(x), g(x)}(\beta_{k(x)}^0, h(x)), \mathrm{inv}_{k(x)(1), g(x)}(\beta_{k(x)}^1))

Then it uses the properties of function types, product types, currying, uncurrying, and the symmetry of products A×BB×AA \times B \simeq B \times A, to construct a function k:𝕀(AB)k':\mathbb{I} \to (A \to B), inductively defined by

  • β k 0(x):k(0)(x)= Bf(x)\beta_{k'}^0(x):k'(0)(x) =_B f(x)
  • β k 1(x):k(1)(x)= Bg(x)\beta_{k'}^1(x):k'(1)(x) =_B g(x)
  • β k p(x):ap k(p)(x)= k(0)(x)= Bk(1)(x)concat k(0)(x),f(x),k(1)(x)(concat k(0)(x),f(x),g(x)(β k 0(x),h(x)),inv k(1)(x),g(x)(β k 1(x)))\beta_{k'}^p(x):\mathrm{ap}_{k'}(p)(x) =_{k'(0)(x) =_B k'(1)(x)} \mathrm{concat}_{k'(0)(x), f(x), k'(1)(x)}(\mathrm{concat}_{k'(0)(x), f(x), g(x)}(\beta_{k'}^0(x), h(x)), \mathrm{inv}_{k'(1)(x), g(x)}(\beta_{k'}^1(x)))

If the interval type has judgmental computation rules for the point constructors, then k(x)(0)f(x)k'(x)(0) \equiv f(x) and k(x)(1)g(x)k'(x)(1) \equiv g(x) for all x:Ax:A, which implies that k(0)(x)f(x)k'(0)(x) \equiv f(x) and k(1)(x)g(x)k'(1)(x) \equiv g(x) for all x:Ax:A, and subsequently that k(0)fk'(0) \equiv f and k(1)gk'(1) \equiv g. This means that there are identities β k 0:k(0)= ABf\beta_{k'}^0:k'(0) =_{A \to B} f and β k 1:k(1)= ABg\beta_{k'}^1:k'(1) =_{A \to B} g, and an identity

concat f,k(1),g(concat f,k(0),k(1)(inv k(0),f(β k 0),ap k(p)),β k 1):f= ABg\mathrm{concat}_{f, k'(1), g}(\mathrm{concat}_{f, k'(0), k'(1)}(\mathrm{inv}_{k'(0), f}(\beta_{k'}^0), \mathrm{ap}_{k'}(p)), \beta_{k'}^1):f =_{A \to B} g

thus proving function extensionality.

An interval type with only typal computation rules for the point constructors does not imply function extensionality. This is because the proof with the judgmental computation rules uses the fact that k(0)(x)f(x)k'(0)(x) \equiv f(x) and k(1)(x)g(x)k'(1)(x) \equiv g(x) for all x:Ax:A implies that k(0)fk'(0) \equiv f and k(1)gk'(1) \equiv g. However, if the computation rules are typal, then the equivalent statement is that having identities β k 0(x):k(0)(x)= Bf(x)\beta_{k'}^0(x):k'(0)(x) =_B f(x) and β k 1(x):k(1)(x)= Bg(x)\beta_{k'}^1(x):k'(1)(x) =_B g(x) for all x:Ax:A implies that there are identities β k 0:k(0)= ABf\beta_{k'}^0:k'(0) =_{A \to B} f and β k 1:k(1)= ABg\beta_{k'}^1:k'(1) =_{A \to B} g, which is precisely function extensionality, and so cannot be used to prove function extensionality.

 Relation to propositional truncations

An interval type is the propositional truncation of the two-valued type 𝟚\mathbb{2}. We use the definition of an interval type using a function from 𝟚\mathbb{2}. Since the interval type has identities

  • refl 𝕀(j(0)):j(0)= 𝕀j(0)\mathrm{refl}_\mathbb{I}(j(0)):j(0) =_\mathbb{I} j(0),
  • p:j(0)= 𝕀j(1)p:j(0) =_\mathbb{I} j(1),
  • inv j(0),j(1)(p):j(1)= 𝕀j(0)\mathrm{inv}_{j(0), j(1)}(p):j(1) =_\mathbb{I} j(0),
  • refl 𝕀(j(1)):j(1)= 𝕀j(1)\mathrm{refl}_\mathbb{I}(j(1)):j(1) =_\mathbb{I} j(1),

there is a dependent function

f: a:𝟚 b:𝟚j(a)= 𝕀j(b)f:\prod_{a:\mathbb{2}} \prod_{b:\mathbb{2}} j(a) =_\mathbb{I} j(b)

inductively defined by the identities

β f(0,0):f(0)(0)= j(0)= 𝕀j(0)refl 𝕀(j(0))\beta_{f}(0, 0):f(0)(0) =_{j(0) =_\mathbb{I} j(0)} \mathrm{refl}_\mathbb{I}(j(0))
β f(0,1):f(0)(1)= j(0)= 𝕀j(1)p\beta_{f}(0, 1):f(0)(1) =_{j(0) =_\mathbb{I} j(1)} p
β f(1,0):f(1)(0)= j(1)= 𝕀j(0)inv j(0),j(1)(p)\beta_{f}(1, 0):f(1)(0) =_{j(1) =_\mathbb{I} j(0)} \mathrm{inv}_{j(0), j(1)}(p)
β f(1,1):f(1)(1)= j(1)= 𝕀j(1)refl 𝕀(j(1))\beta_{f}(1, 1):f(1)(1) =_{j(1) =_\mathbb{I} j(1)} \mathrm{refl}_\mathbb{I}(j(1))

If dependent product types have judgmental computation rules, then the above becomes

f(0)(0)refl 𝕀(j(0)):j(0)= 𝕀j(0)f(0)(0) \equiv \mathrm{refl}_\mathbb{I}(j(0)):j(0) =_\mathbb{I} j(0)
f(0)(1)p:j(0)= 𝕀j(1)f(0)(1) \equiv p:j(0) =_\mathbb{I} j(1)
f(1)(0)inv j(0),j(1)(p):j(1)= 𝕀j(0)f(1)(0) \equiv \mathrm{inv}_{j(0), j(1)}(p):j(1) =_\mathbb{I} j(0)
f(1)(1)refl 𝕀(j(1)):j(1)= 𝕀j(1)f(1)(1) \equiv \mathrm{refl}_\mathbb{I}(j(1)):j(1) =_\mathbb{I} j(1)

Both show that the interval type is the propositional truncation of the two-valued type.

The converse is true as well: the propositional truncation of the two-valued type is the interval type. Recall that [𝟚]\left[\mathbb{2}\right] is inductively generated by a function j:𝟚[𝟚]j:\mathbb{2} \to \left[\mathbb{2}\right] and a dependent function

f: a:𝟚 b:𝟚j(a)= [𝟚]j(b)f:\prod_{a:\mathbb{2}} \prod_{b:\mathbb{2}} j(a) =_{\left[\mathbb{2}\right]} j(b)

which makes [𝟚]\left[\mathbb{2}\right] into an h-proposition. By definition of an h-proposition, for each element a:𝟚a:\mathbb{2} and b:𝟚b:\mathbb{2}, the identity type j(a)= [𝟚]j(b)j(a) =_{\left[\mathbb{2}\right]} j(b) is a contractible type. In particular, by induction on 𝟚\mathbb{2}, this means that there are identities

β f(0,0):f(0)(0)= j(0)= [𝟚]j(0)refl [𝟚](j(0))\beta_{f}(0, 0):f(0)(0) =_{j(0) =_{\left[\mathbb{2}\right]} j(0)} \mathrm{refl}_{\left[\mathbb{2}\right]}(j(0))
β f(1,1):f(1)(1)= j(1)= [𝟚]j(1)refl [𝟚](j(1))\beta_{f}(1, 1):f(1)(1) =_{j(1) =_{\left[\mathbb{2}\right]} j(1)} \mathrm{refl}_{\left[\mathbb{2}\right]}(j(1))

and for every identity p:0= [𝟚]1p:0 =_{\left[\mathbb{2}\right]} 1, there are identities

β f(0,1):f(0)(1)= j(0)= [𝟚]j(1)p\beta_{f}(0, 1):f(0)(1) =_{j(0) =_{\left[\mathbb{2}\right]} j(1)} p
β f(1,0):f(1)(0)= j(1)= [𝟚]j(0)inv j(0),j(1)(p)\beta_{f}(1, 0):f(1)(0) =_{j(1) =_{\left[\mathbb{2}\right]} j(0)} \mathrm{inv}_{j(0), j(1)}(p)

Thus, one could simply take j(0)j(0) and j(1)j(1) as the term constructors and f(0)(1)f(0)(1) as the identity constructor of the interval type.

If both propositional truncations and the two-valued type have judgmental computation rules, the the interval type also has judgmental computation rules. See (this file)

References

Proofs of function extensionality using an interval type with judgmental computation rules for point constructors could be found here

  • Carlo Angiuli, Univalence implies function extensionality (blog, pdf)

Last revised on January 19, 2023 at 16:51:36. See the history of this page for a list of all contributions to it.