Skip to content

Commit 5372312

Browse files
committed
wip
1 parent c02c40a commit 5372312

4 files changed

Lines changed: 143 additions & 1 deletion

File tree

library/mathematics/homotopy/coequalizer.anders

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
HoTT 6.8 Pushouts
99
HoTT 6.10 Quotients
10-
HoTT 6.7 Hubs and Spokes
10+
HoTT 6.7 Hub and Spoke Disc
1111
HoTT 6.9 Truncations
1212

1313
Copyright (c) Groupoid Infinity, 2014-2022. -}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
module colimit where
2+
import library/foundations/mltt/nat
3+
import library/foundations/mltt/w
4+
import library/mathematics/homotopy/coequalizer
5+
import library/mathematics/homotopy/disc
6+
7+
def Diagram (X : U) (D : X → U) : U := Σ (w : W X (λ _ → X)), Π (x : X), D x
8+
def W-Colim (A : U) (B : A → U) (D : W A B → U) (α : Π (a : A) (f : B a → W A B), Π (x : B a), D (sup a f) → D (f x)) : U := ?
9+
def Colim (Shape : W A B) (D : Shape → U) (glue' : Π (a : A) (f : B a → Shape), (Π (x : B a), D (f x)) → D (sup a f)) : U
10+
:= W-ind A B (λ _ → U)
11+
(λ a f rec, ?)
12+
(λ a f rec, ?)
13+
Shape
14+
15+
def FreeColimStep (a : A) (f : B a → ColimPrev) (prev : ColimPrev) : U
16+
:= coeq (Σ (x : B a), prev (f x)) prev
17+
(λ p, p.2)
18+
(λ p, glue-map a f (p.1) (p.2))
19+
20+
def HomotopyColim (A : U) (B : A → U)
21+
(D : W A B → U)
22+
(action : Π a f, (Π x, D (f x)) → D (sup a f)) : U
23+
:= W-ind A B (λ w, U)
24+
(λ a f rec, ?)
25+
(λ a f rec coh, ?)
26+
w
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
module hs where
2+
import library/foundations/univalent/path
3+
import library/foundations/univalent/equiv
4+
5+
-- 1) Formation Rule
6+
def hs (S A : U) : U := disc A
7+
8+
-- 2) Introduction Rules
9+
def hs-center (S A : U) (a : A) := base a
10+
def hs-hub (S A : U) (f : S → hs S A) := hub f
11+
def hs-spoke (S A : U) (f : S → hs S A) (s : S) := spoke s
12+
13+
-- 3) Elimination Rule
14+
def hs-ind (S A : U) (X : hs S A → U)
15+
(nCenter : Π (a : A), X (hs-center S A a))
16+
(nHub : Π (f : S → hs S A) (nF : Π (s : S), X (f s)), X (hs-hub S A f))
17+
(nSpoke : Π (f : S → hs S A) (nF : Π (s : S), X (f s)) (s : S), PathP (<i> X (hs-spoke S A f s @ i)) (nHub f nF) (nF s))
18+
(z : hs S A) := disc-ind z
19+
20+
-- 4) Computational Rules
21+
def hs-β₁ (S A : U) (X : hs S A → U)
22+
(nCenter : Π (a : A), X (hs-center S A a))
23+
(nHub : Π (f : S → hs S A) (nF : Π (s : S), X (f s)), X (hs-hub S A f))
24+
(nSpoke : Π (f : S → hs S A) (nF : Π (s : S), X (f s)) (s : S), PathP (<i> X (hs-spoke S A f s @ i)) (nHub f nF) (nF s)) (a : A)
25+
:= idp (X (hs-center S A a)) (nCenter a)
26+
27+
def hs-β₂ (S A : U) (X : hs S A → U)
28+
(nCenter : Π (a : A), X (hs-center S A a))
29+
(nHub : Π (f : S → hs S A) (nF : Π (s : S), X (f s)), X (hs-hub S A f))
30+
(nSpoke : Π (f : S → hs S A) (nF : Π (s : S), X (f s)) (s : S), PathP (<i> X (hs-spoke S A f s @ i)) (nHub f nF) (nF s)) (f : S → hs S A)
31+
:= idp (X (hs-hub S A f)) (nHub f (λ (s : S), hs-ind S A X nCenter nHub nSpoke (f s)))
32+
33+
-- 5) Uniqueness Rule
34+
def hs-η (S A : U) (X : hs S A → U) (h : Π (z : hs S A), X z)
35+
(hs-map : Π (z : hs S A), X z) := idp (Π (z : hs S A), X z) h
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
module hsw where
2+
import library/foundations/univalent/path
3+
import library/foundations/univalent/extensionality
4+
import library/foundations/mltt/inductive
5+
import library/foundations/mltt/either
6+
import library/mathematics/homotopy/coequalizer
7+
8+
{- Hub and Spoke HIT Encoded via W-types and Coequalizers.
9+
This formalization avoids high-level HIT and core Disc primitive, instead implementing
10+
the MLTT rules via an underlying inductive-algebra framework. -}
11+
12+
def W_hs_B (S A : U) : U := + A 𝟏 -- Points container: B = A + 1
13+
def W_hs_C (S A : U) : W_hs_B S A → U := +-rec A 𝟏 U (λ (_ : A), 𝟎) (λ (_ : 𝟏), S) -- Subtrees: C (inl a) = 0, C (inr *) = S
14+
def W_hs (S A : U) : U := W (x : W_hs_B S A), W_hs_C S A x -- Raw constructors via W-types
15+
def W_center (S A : U) (a : A) : W_hs S a := sup (+ A 𝟏) (W_hs_C S A) (inl A 𝟏 a) (λ (z : 𝟎), ind₀ (W_hs S A) z)
16+
def W_hub (S A : U) (f : S → W_hs S A) : W_hs S A := sup (+ A 𝟏) (W_hs_C S A) (inr A 𝟏 ★) f
17+
18+
def Rel_hs (S A : U) : U := Σ (f : S → W_hs S A), S
19+
def Rel_lhs (S A : U) (r : Rel_hs S A) : W_hs S A := W_hub S A r.1
20+
def Rel_rhs (S A : U) (r : Rel_hs S A) : W_hs S A := r.1 r.2
21+
22+
-- 1) Formation Rule
23+
def hs (S A : U) : U
24+
:= coequ (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A)
25+
26+
-- 2) Introduction Rules
27+
def center (S A : U) (a : A) : hs S A
28+
:= ι₂ (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) (W_center S A a)
29+
30+
def hub (S A : U) (f : S → W_hs S A) : hs S A
31+
:= ι₂ (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) (W_hub S A f)
32+
33+
def spoke (S A : U) (f : S → W_hs S A) (s : S)
34+
: Path (hs S A) (hub S A f) (ι₂ (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) (f s))
35+
:= resp (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) (f, s)
36+
37+
-- The algebra map for the W-type induction
38+
def hs-algebra-map (S A : U) (X : hs S A → U)
39+
(nCenter : Π (a : A), X (center S A a))
40+
(nHub : Π (f : S → W_hs S A) (nF : Π (s : S), X (ι₂ (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) (f s))), X (hub S A f))
41+
: Π (w : W_hs S A), X (ι₂ (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) w)
42+
:= W-ind (+ A 𝟏) (W_hs_C S A) (λ (w : W_hs S A), X (ι₂ (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) w))
43+
(+-ind A 𝟏 (λ (b : + A 𝟏), Π (f : W_hs_C S A b → W_hs S A), (Π (c : W_hs_C S A b), X (ι₂ (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) (f c))) → X (ι₂ (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) (sup (+ A 𝟏) (W_hs_C S A) b f)))
44+
(λ (a : A) (f : 𝟎 → W_hs S A) (nF : Π (c : 𝟎), X (ι₂ (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) (f c))), nCenter a)
45+
(λ (b : 𝟏) (f : S → W_hs S A) (nF : Π (c : S), X (ι₂ (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) (f c))), nHub f nF))
46+
47+
-- 3) Dependent Elimination Rule
48+
def hs-ind (S A : U) (X : hs S A → U)
49+
(nCenter : Π (a : A), X (center S A a))
50+
(nHub : Π (f : S → W_hs S A) (nF : Π (s : S), X (ι₂ (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) (f s))), X (hub S A f))
51+
(nSpoke : Π (f : S → W_hs S A) (nF : Π (s : S), X (ι₂ (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) (f s))) (s : S),
52+
PathP (<i> X (spoke S A f s @ i)) (nHub f nF) (nF s))
53+
(z : hs S A) : X z
54+
:= coequ-ind (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) X
55+
(hs-algebra-map S A X nCenter nHub)
56+
(λ (r : Rel_hs S A), nSpoke r.1 (λ (s : S), hs-algebra-map S A X nCenter nHub (r.1 s)) r.2) z
57+
58+
-- 4) Computational Rules
59+
def hs-β₁ (S A : U) (X : hs S A → U)
60+
(nCenter : Π (a : A), X (center S A a))
61+
(nHub : Π (f : S → W_hs S A) (nF : Π (s : S), X (ι₂ (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) (f s))), X (hub S A f))
62+
(nSpoke : Π (f : S → W_hs S A) (nF : Π (s : S), X (ι₂ (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) (f s))) (s : S),
63+
PathP (<i> X (spoke S A f s @ i)) (nHub f nF) (nF s)) (a : A)
64+
: Path (X (center S A a)) (hs-ind S A X nCenter nHub nSpoke (center S A a)) (nCenter a)
65+
:= idp (X (center S A a)) (nCenter a)
66+
67+
def hs-β₂ (S A : U) (X : hs S A → U)
68+
(nCenter : Π (a : A), X (center S A a))
69+
(nHub : Π (f : S → W_hs S A) (nF : Π (s : S), X (ι₂ (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) (f s))), X (hub S A f))
70+
(nSpoke : Π (f : S → W_hs S A) (nF : Π (s : S), X (ι₂ (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) (f s))) (s : S),
71+
PathP (<i> X (spoke S A f s @ i)) (nHub f nF) (nF s)) (f : S → W_hs S A)
72+
: Path (X (hub S A f)) (hs-ind S A X nCenter nHub nSpoke (hub S A f)) (nHub f (λ (s : S), hs-algebra-map S A X nCenter nHub (f s)))
73+
:= idp (X (hub S A f)) (nHub f (λ (s : S), hs-algebra-map S A X nCenter nHub (f s)))
74+
75+
-- 5) Uniqueness Rule
76+
def hs-η (S A : U) (X : hs S A → U) (h : Π (z : hs S A), X z)
77+
: Path (Π (z : hs S A), X z) h
78+
(λ (z : hs S A), coequ-ind (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) X
79+
(λ (w : W_hs S A), h (ι₂ (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) w))
80+
(λ (r : Rel_hs S A), <i> h (spoke S A r.1 r.2 @ i)) z)
81+
:= coequ-η (Rel_hs S A) (W_hs S A) (Rel_lhs S A) (Rel_rhs S A) X h

0 commit comments

Comments
 (0)