B A Y C P L E I T S C U PART II
univalence n loop e w ? p a t h s loop l o o p A
By Jonah Kan - Own work, CC BY-SA 3.0, h ps://commons.wikimedia.org/w/index.php?curid=27584059 I know how to guarantee a combinatorial structure has enough paths Daniel Marinus Kan My group knows how to bring that into the design of type theory *Guillaume Brunerie and Daniel R. Licata are also pioneers Thierry Coquand By Andrej Bauer - h p://andrej.com/mathematicians/C/Coquand_Thierry.html, CC BY-SA 2.5 si, h ps://commons.wikimedia.org/w/index.php?curid=15264235
1. What are the types? (form) univalence 2. What are the constructors? (intro) n loop e 3. How to consume an element? (elim) w p a 4. What if a constructor is consumed? ( β ) t h s 5. Uniqueness principle? ( η ) 6. How to compose stu ? (Kan operators) s r o a t r e p o w e n e p y t y r e v e r o f A
*Homogeneous Compositions face face *not changing cap type type type
should work with substitution [BCH]
variant: diagonal faces and alternative filling directions
Coercion
variant 1: alternative coercion directions
variant 2: freezing parts of the input (used in cubical Agda)
+ With these two operators every type has enough paths
+ They also give changing heterogeneous compositions type
Major Variants [CCHM+CHM] [AFH+ABCFHL+CH] 0, 1, ∧ , ∨ , ~ 0, 1 algebra on 𝕁 De Morgan homogeneous standard variant composition variant 2 variant 1 coercion ready-to-use cubical Agda red proof assistants
A : U i j j=0, k: 𝕁 ⊦ N 1 : A [k=0 ↦ M] M : A i i=1, k: 𝕁 ⊦ N 2 : A [k=0 ↦ M, j=0 ↦ N 1 ] j j=1, k: 𝕁 ⊦ N 3 : A [k=0 ↦ M, i=1 ↦ N 2 ] i=1 j=1 j=0 2 3 1 [ j=0 ↦ N 1 , i=1 ↦ N 2 , j=1 ↦ N 3 ] k (faces are unordered in CCHM+CHM) i j hcomp k A [ j=0 ↦ N 1 , i=1 ↦ N 2 , j=1 ↦ N 3 ] M : A k h omogeneous i j
k: 𝕁 ⊦ A : U M : A[0/k] k i j comp k A [ … ] M : A[1/k]
j: 𝕁 ⊦ A : U M : A[0/j] i=0 ⊦ A ≡ A[0/j] : U j i (type at i=0 cannot change) transp j A (~i) M : A[1/j] this represents (~i=1) = (i=0) in general, r: 𝕁 to represent r=1
Constraints in Contexts φ ⊦ M : A r := 0 | 1 | i | r 1 ∧ r 2 | r 1 ∨ r 2 | ~ r (De Morgan) φ := false | true | (r = 0) | (r = 1) | φ 1 ∧ φ 2 | φ 1 ∨ φ 2
r := 0 | 1 | i | r 1 ∧ r 2 | r 1 ∨ r 2 | ~ r (De Morgan) φ := false | true | (r = 0) | (r = 1) | φ 1 ∧ φ 2 | φ 1 ∨ φ 2 r ↦ r=1 preserves ∧ , ∨ , and ~ where ~r=1 means r=0 Any φ is equivalent to r=1 for some r e.g., (i=0) ∨ (i=1) = (~i=1) ∨ (i=1) = (~i ∨ i)=1 e.g., trapns j A r M
Restricted by Partial Elements M : A [ φ ↦ N] M : A φ ⊦ M ≡ N : A and
2. What are the constructors? (intro) 3. How to consume an element? (elim) 4. What if a constructor is consumed? ( β ) 5. Uniqueness principle? ( η ) 6. hcomp and transp (and thus comp) Gives us all the paths Definable for every type
φ , i: 𝕁 ⊦ N : ⊤ M : ⊤ hcomp i ⊤ [ φ ↦ N] M ≡ M : ⊤ r : 𝕁 M : ⊤ transp i ⊤ r M ≡ M : ⊤
the unit univalence n loop e the empty type w p a t h functions s pairs paths hcomp the circle transp universes A (many others)
Recommend
More recommend