Skip to content

Commit 5d22b8b

Browse files
committed
some lemmas
1 parent 984ce6b commit 5d22b8b

File tree

2 files changed

+36
-7
lines changed

2 files changed

+36
-7
lines changed

library/data/equiv.anders

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,29 @@
1212
Copyright © Groupoid Infinity, 2021—2022,
1313
© @siegment, 2022—2023 -}
1414

15-
import library/data/path
15+
import library/mathematics/prop
1616

17-
def fiber (A B : U) (f : A → B) (y : B) : U := Σ (x : A), Path B y (f x)
18-
def isEquiv (A B : U) (f : A → B) : U := Π (y : B), isContr (fiber A B f y)
19-
def equiv (A B : U) : U := Σ (f : A → B), isEquiv A B f
17+
section
18+
variables (n : L) (A B : U n)
19+
20+
def fiberω (f : A → B) (y : B) := Σ (x : A), PathP (<_> B) y (f x)
21+
def isEquivω (f : A → B) := Π (y : B), isContrω n (fiberω n A B f y)
22+
def equivω := Σ (f : A → B), isEquivω n A B f
23+
end
24+
25+
def fiber := fiberω L₀
26+
def isEquiv := isEquivω L₀
27+
def equiv := equivω L₀
2028

2129
def contrSingl (A : U) (a b : A) (p : Path A a b) : Path (Σ (x : A), Path A a x) (a, <_> a) (b, p) :=
2230
<i> (p @ i, <j> p @ i ∧ j)
2331

2432
def idIsEquiv (A : U) : isEquiv A A (id A) := λ (a : A), ((a, <_> a), λ (z : fiber A A (id A) a), contrSingl A a z.1 z.2)
2533
def idEquiv (A : U) : equiv A A := (id A, isContrSingl A)
2634

35+
def equiv-respects-contrω (n : L) (A B : U n) (w : equivω n A B) (H : isContrω n A) : isContrω n B :=
36+
(w.1 H.1, λ (y : B), transp (<i> PathP (<_> B) (w.1 H.1) ((w.2 y).1.2 @ -i)) 0 (<j> w.1 (H.2 ((w.2 y).1.1) @ j)))
37+
2738
section
2839
variables (A B : U)
2940

@@ -58,10 +69,24 @@ transp (<i> equiv A (p @ i)) 0 (idEquiv A)
5869
def ua (A B : U) (e : equiv A B) : PathP (<_> U) A B :=
5970
<i> Glue B (∂ i) [(i = 0) → (A, e), (i = 1) → (B, idEquiv B)]
6071

61-
def univ-computation (A B : U) (p : PathP (<_> U) A B) : PathP (<_> PathP (<_> U) A B) (ua A B (idtoeqv A B p)) p :=
72+
def ua-idtoeqv (A B : U) (p : PathP (<_> U) A B) : PathP (<_> PathP (<_> U) A B) (ua A B (idtoeqv A B p)) p :=
6273
<j i> Glue B (j ∨ ∂ i) [(i = 0) → (A, idtoeqv A B p),
6374
(i = 1) → (B, transp (<_> equiv B B) (-j) (idEquiv B)),
6475
(j = 1) → (p @ i, idtoeqv (p @ i) B (<k> p @ (i ∨ k)))]
6576

6677
def ua-β (A B : U) (e : equiv A B) : Path (A → B) (trans A B (ua A B e)) e.1 :=
6778
<i> λ (x : A), (idfun=idfun″ B @ -i) ((idfun=idfun″ B @ -i) ((idfun=idfun′ B @ -i) (e.1 x)))
79+
80+
def isEquivProp (A B : U) (f : A → B) : isProp (isEquiv A B f) :=
81+
propPi B (λ (y : B), isContr (fiber A B f y))
82+
(λ (y : B), propIsContr (fiber A B f y))
83+
84+
def idtoeqv→trans (A B : U) (p : PathP (<_> U) A B) : Path (A → B) (idtoeqv A B p).1 (trans A B p) :=
85+
<i> λ (a : A), transp p 0 (transp (<_> A) i a)
86+
87+
def ideqv-compute (A B : U) (e : equiv A B) : Path (A → B) (idtoeqv A B (ua A B e)).1 e.1 :=
88+
comp-Path (A → B) (idtoeqv A B (ua A B e)).1 (trans A B (ua A B e)) e.1 (idtoeqv→trans A B (ua A B e)) (ua-β A B e)
89+
90+
-- should “isEquiv” be opaque?
91+
--def idtoeqv-ua (A B : U) (e : equiv A B) : Path (equiv A B) (idtoeqv A B (ua A B e)) e :=
92+
--lemSig (A → B) (isEquiv A B) (isEquivProp A B) (idtoeqv A B (ua A B e)) e (ideqv-compute A B e)

library/data/path.anders

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,12 @@ def sym (A : U) (a b : A) (p : Path A a b) : Path A b a := <i> p @ -i
3333

3434
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)
3535

36-
def isContr (A : U) : U := Σ (x : A), Π (y : A), Path A x y
37-
def isContrSingl (A : U) (a : A) : isContr (singl A a) := ((a, idp A a), (λ (z : singl A a), contr A a z.1 z.2))
36+
def isContrω (n : L) (A : U n) := Σ (x : A), Π (y : A), PathP (<_> A) x y
37+
38+
def isContr := isContrω L₀
39+
40+
def isContrSingl (A : U) (a : A) : isContr (singl A a) :=
41+
((a, idp A a), (λ (z : singl A a), contr A a z.1 z.2))
3842

3943
def ap (A B : U) (f : A → B) (a b : A) (p : a = b) : f a = f b := <i> f (p @ i)
4044
def apd (A : U) (B : A → U) (f : Π (x : A), B x) (a b : A) (p : a = b) : PathP (<i> B (p @ i)) (f a) (f b) := <i> f (p @ i)

0 commit comments

Comments
 (0)