You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
def K (G : abgroup) (n : nat) : U := (K-Pointed G n).1
31
25
def K-point (G : abgroup) (n : nat) : K G n := (K-Pointed G n).2
32
26
33
-
-- K(G, n) Rules
34
-
-- Elimination (Induction):
35
-
-- P must be a family over the whole tower to allow induction on n.
36
-
def K-ind (G : abgroup) (n : nat) (P : Π (k : nat), K G k → U)
37
-
(pBase : Π (g : G.1.1), P zero g)
38
-
(pStep : Π (k : nat) (prev : Π (z : K G k), P k z) (z : K G (succ k)), P (succ k) z)
39
-
(z : K G n) : P n z
40
-
:= ind-nat (λ (k : nat), Π (pB : Π (g : G.1.1), P zero g),
41
-
(Π (m : nat) (pr : Π (y : K G m), P m y) (y : K G (succ m)), P (succ m) y) →
42
-
(Π (z : K G k), P k z))
27
+
-- Elimination (Induction): P must be a family over the whole tower to allow induction on n.
28
+
def K-ind (G : abgroup) (n : nat) (P : Π (k : nat), K G k → U) (pBase : Π (g : G.1.1), P zero g)
29
+
(pStep : Π (k : nat) (prev : Π (z : K G k), P k z) (z : K G (succ k)), P (succ k) z) (z : K G n) : P n z
30
+
:= ind-nat (λ (k : nat), Π (pB : Π (g : G.1.1), P zero g), (Π (m : nat) (pr : Π (y : K G m), P m y) (y : K G (succ m)), P (succ m) y) → (Π (z : K G k), P k z))
43
31
(λ (pB : Π (g : G.1.1), P zero g) (pS : Π (m : nat) (pr : Π (y : K G m), P m y) (y : K G (succ m)), P (succ m) y) (z : K G zero), pB z)
44
32
(λ (k : nat) (prev : Π (pB : Π (g : G.1.1), P zero g) (pS : Π (m : nat) (pr : Π (y : K G m), P m y) (y : K G (succ m)), P (succ m) y) (z : K G k), P k z)
45
-
(pB : Π (g : G.1.1), P zero g) (pS : Π (m : nat) (pr : Π (y : K G m), P m y) (y : K G (succ m)), P (succ m) y) (z : K G (succ k)),
46
-
pS k (λ (y : K G k), prev pB pS y) z)
47
-
n pBase pStep z
33
+
(pB : Π (g : G.1.1), P zero g) (pS : Π (m : nat) (pr : Π (y : K G m), P m y) (y : K G (succ m)), P (succ m) y) (z : K G (succ k)), pS k (λ (y : K G k), prev pB pS y) z) n pBase pStep z
48
34
49
35
-- Computation Rule (Beta):
50
-
def K-point-β (G : abgroup) (n : nat) (P : Π (k : nat), K G k → U)
51
-
(pBase : Π (g : G.1.1), P zero g)
36
+
def K-point-β (G : abgroup) (n : nat) (P : Π (k : nat), K G k → U) (pBase : Π (g : G.1.1), P zero g)
52
37
(pStep : Π (k : nat) (prev : Π (z : K G k), P k z) (z : K G (succ k)), P (succ k) z)
53
38
: Path (P n (K-point G n)) (K-ind G n P pBase pStep (K-point G n)) (K-ind G n P pBase pStep (K-point G n))
54
39
:= <_> (K-ind G n P pBase pStep (K-point G n))
55
40
56
-
-- Uniqueness (Eta):
57
-
-- This rule must be proven by induction on n because ind-nat does not reduce on a variable n.
41
+
-- Uniqueness (Eta): This rule must be proven by induction on n because ind-nat does not reduce on a variable n.
58
42
def K-η (G : abgroup) (n : nat) (P : Π (k : nat), K G k → U) (h : Π (k : nat) (z : K G k), P k z)
59
43
: Path (Π (z : K G n), P n z) (h n) (λ (z : K G n), K-ind G n P (λ (g : G.1.1), h zero g) (λ (k : nat) (prev : Π (y : K G k), P k y) (y : K G (succ k)), h (succ k) y) z)
60
-
:= ind-nat (λ (k : nat), Path (Π (z : K G k), P k z) (h k) (λ (z : K G k), K-ind G k P (λ (g : G.1.1), h zero g) (λ (m : nat) (pr : Π (y : K G m), P m y) (y : K G (succ m)), h (succ m) y) z))
61
-
(<_> (h zero))
62
-
(λ (k : nat) (prev : Path (Π (z : K G k), P k z) (h k) (λ (z : K G k), K-ind G k P (λ (g : G.1.1), h zero g) (λ (m : nat) (pr : Π (y : K G m), P m y) (y : K G (succ m)), h (succ m) y) z)),
63
-
<_> (h (succ k))) n
44
+
:= ind-nat (λ (k : nat), Path (Π (z : K G k), P k z) (h k) (λ (z : K G k), K-ind G k P (λ (g : G.1.1), h zero g) (λ (m : nat) (pr : Π (y : K G m), P m y) (y : K G (succ m)), h (succ m) y) z)) (<_> (h zero))
45
+
(λ (k : nat) (prev : Path (Π (z : K G k), P k z) (h k) (λ (z : K G k), K-ind G k P (λ (g : G.1.1), h zero g) (λ (m : nat) (pr : Π (y : K G m), P m y) (y : K G (succ m)), h (succ m) y) z)), <_> (h (succ k))) n
0 commit comments