-
Notifications
You must be signed in to change notification settings - Fork 1
/
Part2-2.agda
46 lines (37 loc) · 1.1 KB
/
Part2-2.agda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
{-# OPTIONS --cubical #-}
open import Cubical.Foundations.Prelude
open import Cubical.Data.Sigma
data S¹ : Type₀ where
base : S¹
loop : base ≡ base
data Torus : Type₀ where
point : Torus
line1 : point ≡ point
line2 : point ≡ point
square : PathP (λ i → line1 i ≡ line1 i) line2 line2
t2c : Torus → S¹ × S¹
t2c point = ( base , base )
t2c (line1 i) = ( loop i , base )
t2c (line2 j) = ( base , loop j )
t2c (square i j) = ( loop i , loop j )
c2t : S¹ × S¹ → Torus
c2t (base , base) = point
c2t (loop i , base) = line1 i
c2t (base , loop j) = line2 j
{-
j = i0 |- c2t (base , loop j)
= c2t (base , loop i0)
= c2t (base , base)
= point
-}
c2t (loop i , loop j) = square i j
c2t-t2c : ∀ (t : Torus) → c2t (t2c t) ≡ t
c2t-t2c point = refl
c2t-t2c (line1 _) = refl
c2t-t2c (line2 _) = refl
c2t-t2c (square _ _) = refl
t2c-c2t : ∀ (p : S¹ × S¹) → t2c (c2t p) ≡ p
t2c-c2t (base , base) = refl
t2c-c2t (base , loop _) = refl
t2c-c2t (loop _ , base) = refl
t2c-c2t (loop _ , loop _) = refl