Skip to content

Commit b390b72

Browse files
committed
unlift A
1 parent b10c117 commit b390b72

File tree

1 file changed

+52
-57
lines changed

1 file changed

+52
-57
lines changed

lib/foundations/mltt/mltt.anders

Lines changed: 52 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -6,69 +6,64 @@
66
Copyright (c) Groupoid Infinity, 2014-2023. -}
77

88
module mltt where
9-
import lib/foundations/mltt/pi
10-
import lib/foundations/mltt/sigma
11-
import lib/foundations/mltt/list
12-
import lib/foundations/univalent/path
139
option girard true
1410

15-
def Definition : U :=
16-
Σ (name: List ℕ)
17-
(telescope: List (Σ(A:U),A))
18-
(landing: U)
19-
(body: U), 𝟏
11+
def Path (A : U) (x y : A) : U := PathP (<_> A) x y
12+
def idp (A : U) (x : A) : Path A x x := <_> x
13+
def Pi (O : 𝟏) (A : U) (B : A → U) : U := Π (x : A), B x
14+
def Π-lambda (O : 𝟏) (A: U) (B: A → U) (b: Pi ★ A B) : Pi ★ A B := λ (x : A), b x
15+
def Π-apply (O : 𝟏) (A: U) (B: A → U) (f: Pi ★ A B) (a: A) : B a := f a
16+
def Π-β (O : 𝟏) (A : U) (B : A → U) (a : A) (f : Pi ★ A B) : Path (B a) (Π-apply ★ A B (Π-lambda ★ A B f) a) (f a) := idp (B a) (f a)
17+
def Π-η (O : 𝟏) (A : U) (B : A → U) (a : A) (f : Pi ★ A B) : Path (Pi ★ A B) f (λ (x : A), f x) := idp (Pi ★ A B) f
18+
def Sigma (O : 𝟏) (A : U) (B : A → U) : U := summa (x: A), B x
19+
def pair (O : 𝟏) (A: U) (B: A → U) (a: A) (b: B a) : Sigma ★ A B := (a, b)
20+
def pr₁ (O : 𝟏) (A: U) (B: A → U) (x: Sigma ★ A B) : A := x.1
21+
def pr₂ (O : 𝟏) (A: U) (B: A → U) (x: Sigma ★ A B) : B (pr₁ ★ A B x) := x.2
22+
def Σ-β₁ (O : 𝟏) (A : U) (B : A → U) (a : A) (b : B a) : Path A a (pr₁ ★ A B (a ,b)) := idp A a
23+
def Σ-β₂ (O : 𝟏) (A : U) (B : A → U) (a : A) (b : B a) : Path (B a) b (pr₂ ★ A B (a, b)) := idp (B a) b
24+
def Σ-η (O : 𝟏) (A : U) (B : A → U) (p : Sigma ★ A B) : Path (Sigma ★ A B) p (pr₁ ★ A B p, pr₂ ★ A B p) := idp (Sigma ★ A B) p
2025

21-
def IdentitySystem (A: U) : U ≔
22-
Σ (=-form : A → A → U)
23-
(=-ctor : Π (a : A), =-form a a)
24-
(=-elim : Π (a : A) (C: Π (x y: A) (p: =-form x y), U)
25-
(d: C a a (=-ctor a)) (y: A)
26-
(p: =-form a y), C a y p)
27-
(=-comp : Π (a : A) (C: Π (x y: A) (p: =-form x y), U)
28-
(d: C a a (=-ctor a)),
29-
Path (C a a (=-ctor a)) d
30-
(=-elim a C d a (=-ctor a))), 𝟏
26+
def Path-1 (O : 𝟏) (A : U) (x y : A) : U := PathP (<_> A) x y
27+
def idp-1 (O : 𝟏) (A : U) (x : A) : Path A x x := <_> x
28+
def transport (A B: U) (p : PathP (<_> U) A B) (a: A): B := transp p 0 a
29+
def singl (A: U) (a: A): U := Σ (x: A), Path A a x
30+
def eta (A: U) (a: A): singl A a := (a, idp A a)
31+
def contr (A : U) (a b : A) (p : Path A a b) : Path (singl A a) (eta A a) (b, p) := <i> (p @ i, <j> p @ i /\ j)
32+
def trans_comp (A : U) (a : A) : Path A a (transport A A (<i> A) a) := <j> transp (<_> A) -j a
33+
def subst (A : U) (P : A -> U) (a b : A) (p : Path A a b) (e : P a) : P b := transp (<i> P (p @ i)) 0 e
34+
def subst-comp (A: U) (P: A → U) (a: A) (e: P a): Path (P a) e (subst A P a a (idp A a) e) := trans_comp (P a) e
35+
def D (A : U) : U₁ := Π (x y : A), Path A x y → U
3136

32-
def FibrationalSystem (A : U) : U₁ ≔
33-
Σ (Π-form : Π (B : A → U), U)
34-
(Π-ctor₁ : Π (B : A → U), Pi A B → Pi A B)
35-
(Π-elim₁ : Π (B : A → U), Pi A B → Pi A B)
36-
(Π-comp₁ : Π (B : A → U) (a : A) (f : Pi A B), Path (B a) (Π-elim₁ B (Π-ctor₁ B f) a) (f a))
37-
(Π-comp₂ : Π (B : A → U) (a : A) (f : Pi A B), Path (Pi A B) f (λ (x : A), f x))
38-
(Σ-form : Π (B : A → U), U)
39-
(Σ-ctor₁ : Π (B : A → U) (a : A) (b : B a) , Sigma A B)
40-
(Σ-elim₁ : Π (B : A → U) (p : Sigma A B), A)
41-
(Σ-elim₂ : Π (B : A → U) (p : Sigma A B), B (pr₁ A B p))
42-
(Σ-comp₁ : Π (B : A → U) (a : A) (b: B a), Path A a (Σ-elim₁ B (Σ-ctor₁ B a b)))
43-
(Σ-comp₂ : Π (B : A → U) (a : A) (b: B a), Path (B a) b (Σ-elim₂ B (a, b)))
44-
(Σ-comp₃ : Π (B : A → U) (p : Sigma A B), Path (Sigma A B) p (pr₁ A B p, pr₂ A B p)), 𝟏
37+
def J (A: U) (x: A) (C: D A) (d: C x x (idp A x)) (y: A) (p: Path A x y): C x y p
38+
:= subst (singl A x) (\ (z: singl A x), C x (z.1) (z.2)) (eta A x) (y, p) (contr A x y p) d
39+
def J-1 (O : 𝟏) (A : U) (x : A) (C: D A) (d: C x x (idp A x)) (y: A) (p: Path A x y): C x y p
40+
:= subst (singl A x) (\ (z: singl A x), C x (z.1) (z.2)) (eta A x) (y, p) (contr A x y p) d
41+
def J-β (O : 𝟏) (A : U) (a : A) (C : D A) (d: C a a (idp A a)) : Path (C a a (idp A a)) d (J A a C d a (idp A a))
42+
:= subst-comp (singl A a) (\ (z: singl A a), C a (z.1) (z.2)) (eta A a) d
4543

46-
def MLTT (A : U) : U₁ ≔
47-
Σ (Π-form : Π (B : A → U), U)
48-
(Π-ctor₁ : Π (B : A → U), Pi A B → Pi A B)
49-
(Π-elim₁ : Π (B : A → U), Pi A B → Pi A B)
50-
(Π-comp₁ : Π (B : A → U) (a : A) (f : Pi A B), Path (B a) (Π-elim₁ B (Π-ctor₁ B f) a) (f a))
51-
(Π-comp₂ : Π (B : A → U) (a : A) (f : Pi A B), Path (Pi A B) f (λ (x : A), f x))
52-
(Σ-form : Π (B : A → U), U)
53-
(Σ-ctor₁ : Π (B : A → U) (a : A) (b : B a) , Sigma A B)
54-
(Σ-elim₁ : Π (B : A → U) (p : Sigma A B), A)
55-
(Σ-elim₂ : Π (B : A → U) (p : Sigma A B), B (pr₁ A B p))
56-
(Σ-comp₁ : Π (B : A → U) (a : A) (b: B a), Path A a (Σ-elim₁ B (Σ-ctor₁ B a b)))
57-
(Σ-comp₂ : Π (B : A → U) (a : A) (b: B a), Path (B a) b (Σ-elim₂ B (a, b)))
58-
(Σ-comp₃ : Π (B : A → U) (p : Sigma A B), Path (Sigma A B) p (pr₁ A B p, pr₂ A B p))
59-
(=-form : Π (a : A), A → U)
60-
(=-ctor₁ : Π (a : A), Path A a a)
61-
(=-elim₁ : Π (a : A) (C: D A) (d: C a a (=-ctor₁ a)) (y: A) (p: Path A a y), C a y p)
62-
(=-comp₁ : Π (a : A) (C: D A) (d: C a a (=-ctor₁ a)),
63-
Path (C a a (=-ctor₁ a)) d (=-elim₁ a C d a (=-ctor₁ a))), 𝟏
44+
def MLTT :=
45+
Σ (Π-form : Π (A : U) (B : A → U), U)
46+
(Π-ctor₁ : Π (A : U) (B : A → U), Pi ★ A B → Pi ★ A B)
47+
(Π-elim₁ : Π (A : U) (B : A → U), Pi ★ A B → Pi ★ A B)
48+
(Π-comp₁ : Π (A : U) (B : A → U) (a : A) (f : Pi ★ A B), Path (B a) (Π-elim₁ A B (Π-ctor₁ A B f) a) (f a))
49+
(Π-comp₂ : Π (A : U) (B : A → U) (a : A) (f : Pi ★ A B), Path (Pi ★ A B) f (λ (x : A), f x))
50+
(Σ-form : Π (A : U) (B : A → U), U)
51+
(Σ-ctor₁ : Π (A : U) (B : A → U) (a : A) (b : B a) , Sigma ★ A B)
52+
(Σ-elim₁ : Π (A : U) (B : A → U) (p : Sigma ★ A B), A)
53+
(Σ-elim₂ : Π (A : U) (B : A → U) (p : Sigma ★ A B), B (pr₁ ★ A B p))
54+
(Σ-comp₁ : Π (A : U) (B : A → U) (a : A) (b: B a), Path A a (Σ-elim₁ A B (Σ-ctor₁ A B a b)))
55+
(Σ-comp₂ : Π (A : U) (B : A → U) (a : A) (b: B a), Path (B a) b (Σ-elim₂ A B (a, b)))
56+
(Σ-comp₃ : Π (A : U) (B : A → U) (p : Sigma ★ A B), Path (Sigma ★ A B) p (pr₁ ★ A B p, pr₂ ★ A B p))
57+
(=-form : Π (A : U) (a : A), A → U)
58+
(=-ctor₁ : Π (A : U) (a : A), Path A a a)
59+
(=-elim₁ : Π (A : U) (a : A) (C: D A) (d: C a a (=-ctor₁ A a)) (y: A) (p: Path A a y), C a y p)
60+
(=-comp₁ : Π (A : U) (a : A) (C: D A) (d: C a a (=-ctor₁ A a)), Path (C a a (=-ctor₁ A a)) d (=-elim₁ A a C d a (=-ctor₁ A a))), 𝟏
6461

6562
--- Self-aware MLTT:
66-
--- Theorem. Id β-rule is derivable from generalized transport
63+
--- Theorem. J-β-rule is derivable from generalized transport
6764

68-
def internalizing (A : U)
69-
: MLTT A
70-
:= ( Pi A, Π-lambda A, Π-apply A, Π-β A, Π-η A,
71-
Sigma A, pair A, pr₁ A, pr₂ A, Σ-β₁ A, Σ-β₂ A, Σ-η A,
72-
Path A, idp A, J A, J-β A,
73-
65+
def internalizing : MLTT
66+
:= ( Pi ★, Π-lambda ★, Π-apply ★, Π-β ★, Π-η ★,
67+
Sigma ★, pair ★, pr₁ ★, pr₂ ★, Σ-β₁ ★, Σ-β₂ ★, Σ-η ★,
68+
Path-1 ★, idp-1 ★, J-1 ★, J-β ★, ★
7469
)

0 commit comments

Comments
 (0)