B A Y C P L E I C T S U PART I
M A i 1 0 i: 𝕁 ⊦ M : A
M A A i j i: 𝕁 , j: 𝕁 ⊦ M : A
M A n-cube i 1 : 𝕁 , i 2 : 𝕁 , …, i n : 𝕁 ⊦ M : A
M[1/j] M[1/i] M[i/j] M[0/i] M[0/j] M i j
i: 𝕁 ∈ Γ Γ ⊦ i : 𝕁 0 : 𝕁 1 : 𝕁 𝕁 is not a type! It is an alian animal r : 𝕁 s : 𝕁 r : 𝕁 s : 𝕁 r : 𝕁 r ∧ s : 𝕁 r ∨ s : 𝕁 ~ r : 𝕁 optional
univalence loop e x funext t r a p a t h s (induced) new i n t e r n a l paths i z e Id A Pre-cubical Era A
judgmental framework of paths univalence n loop e w p a t h s i n t e r n a l i z e Id A Cubical Era A
S1 : U base : S1 r : 𝕁 loop: Id S1 (base; base) loop r : S1 loop 0 ≡ base : S1 loop 1 ≡ base : S1
x: S1 ⊢ C : U M base : C[base/x] x.C M base N: S1 M loop : M base = loop elim S1 [x.C](M base ; M loop ; N) : C[N/x] x: S1 ⊢ C : U M base : C[base/x] i: 𝕁 ⊢ M loop : C[loop i /x] N: S1 M loop [0/i] ≡ M base : C[base/x] M loop [1/i] ≡ M base : C[base/x] elim S1 [x.C](M base ; i.M loop ; N) : C[N/x]
M base M loop x.C M base : C[base/x] base : S1 i: 𝕁 ⊢ M loop : C[loop i /x] loop r : S1 M loop [0/i] ≡ M base : C[base/x] loop 0 ≡ base : S1 M loop [1/i] ≡ M base : C[base/x] loop 1 ≡ base : S1 elim S1 [x.C](M base ; i.M loop ; N) : C[N/x]
(…) elim S1 [x.C](M base ; j.M loop ; base) ≡ M base : C[base/x] (…) elim S1 [x.C](M base ; j.M loop ; loop i ) ≡ M loop [i/j] : C[loop i /x] 1. diagonal substitution is crucial 2. we need to improve the framework to enable path concatenation e.g., "loop ∙ loop"
univalence univalence loop n loop e e x funext w t r a p a p t a h t s h s *stay tuned for the next including week concatenation, reversal, etc., Id A via magical J A Cubical Pre-cubical
Path types " Π i: 𝕁 A" with endpoints M i A i N O P : Path i.A (N; O) r : 𝕁 i: 𝕁 ⊦ A : U i: 𝕁 ⊦ M : A P@r : A[r/i] N : A[0/i] M[0/i] ≡ N : A[0/i] O : A[1/i] M[1/i] ≡ O : A[1/i] P : Path i.A (N; O) Path i.A (N; O) : U λ i.M : Path i.A (N; O) P@0 ≡ N : A[0/i] P@1 ≡ O : A[1/i]
Path types " Π i: 𝕁 A" with endpoints M i A i N O i: 𝕁 ⊦ M : A r : 𝕁 P : Path i.A (N; O) ( λ i.M)@r ≡ M[r/i] : A[r/i] P ≡ λ i.P@i : Path i.A (N; O)
Path types internalizing i: 𝕁 ⊦ M : A Identification types freely generated by refl these two will become equivalent when we fix the framework (next week)
univalence n loop e w Where is function p a t h s extensionality? YES, WE CAN! *stay tuned for the next (NOT VIA UNIVALENCE) week A
Function extensionality P : Π x:A Path _.B(x) (F(x); G(x)) x:A ⊦ P(x) : Path _.B(x) (F(x); G(x)) x:A, i: 𝕁 ⊦ P(x)@i : B(x) i: 𝕁 , x:A ⊦ P(x)@i : B(x) i: 𝕁 ⊦ λ x.P(x)@i : B(x) λ i. λ x.P(x)@i : Path _. Π (x:A)B(x) (F; G) (you need to check the boundaries F and G)
P : Π x:A Path _.B(x) (F(x); G(x)) x:A ⊦ P(x) : Path _.B(x) (F(x); G(x)) x:A, i: 𝕁 ⊦ P(x)@i : B(x) i: 𝕁 , x:A ⊦ P(x)@i : B(x) i: 𝕁 ⊦ λ x.P(x)@i : B(x) 1. Both paths and functions internalize λ i. λ x.P(x)@i : Path _. Π (x:A)B(x) (F; G) hypothetical judgments 2. You can exchange hypotheses 3. Paths and functions thus "commute" 4. Therefore, function extensionality!
Fix the framework (next week) 1. What are the types? (form) 2. What are the constructors? (intro) 3. How to consume an element? (elim) 4. What if a constructor is consumed? ( β ) 5. Uniqueness principle? ( η ) 6. How to compose stu ? (Kan operators) every type is responsible for its path concatenation
univalence univalence loop n loop e e x funext w t r a p a p t a h t s h s *stay tuned for the next including week concatenation, reversal, etc., Id A via magical J A Cubical Pre-cubical
Recommend
More recommend