groupid laws

This commit is contained in:
Jlh18 2021-10-19 16:58:41 +01:00
parent d36e0c8a97
commit ef75329b74
2 changed files with 65 additions and 2 deletions

View File

@ -1,7 +1,70 @@
module 0Trinitarianism.Quest4Solutions where
open import Cubical.Foundations.Prelude
open import Cubical.Foundations.Isomorphism renaming (Iso to _≅_)
data _≣_ {A : Type} : (x y : A) Type where
data Id {A : Type} : (x y : A) Type where
rfl : (x : A) x x
rfl : {x : A} Id x x
idSym : (A : Type) (x y : A) Id x y Id y x
idSym A x .x rfl = rfl
Sym : {A : Type} {x y : A} Id x y Id y x
Sym rfl = rfl
_*_ : {A : Type} {x y z : A} Id x y Id y z Id x z
rfl * q = q
_*0_ : {A : Type} {x y z : A} Id x y Id y z Id x z
p *0 rfl = p
_*1_ : {A : Type} {x y z : A} Id x y Id y z Id x z
rfl *1 rfl = rfl
data _×_ (A B : Type) : Type where
_,_ : A B A × B
id× : {A B : Type} (a0 a1 : A) (b0 b1 : B)
(Id a0 a1 × Id b0 b1) Id {A × B} ( a0 , b0 ) ( a1 , b1 )
id× {A} {B} a0 a1 b0 b1 = iso fun inv rightInv leftInv where
fun : Id a0 a1 × Id b0 b1 Id {A × B} ( a0 , b0 ) ( a1 , b1 )
fun (rfl , rfl) = rfl
inv : Id {A × B} ( a0 , b0 ) ( a1 , b1 ) Id a0 a1 × Id b0 b1
inv rfl = rfl , rfl
rightInv : section fun inv
rightInv rfl = refl
leftInv : retract fun inv
leftInv (rfl , rfl) = refl
------------Cong-------------------------
private
variable
A B : Type
Cong : {x y : A} (f : A B) Id x y Id (f x) (f y)
Cong f rfl = rfl
------------Groupoid Laws----------------
rfl* : {x y : A} (p : Id x y) Id (rfl * p) p
rfl* p = rfl
*rfl : {x y : A} (p : Id x y) Id (p * rfl) p
*rfl rfl = rfl
*Sym : {A : Type} {x y : A} (p : Id x y) Id (p * Sym p) rfl
*Sym rfl = rfl
Sym* : {A : Type} {x y : A} (p : Id x y) Id rfl (p * Sym p)
Sym* rfl = rfl
Assoc : {A : Type} {w x y z : A} (p : Id w x) (q : Id x y) (r : Id y z)
Id ((p * q) * r) (p * (q * r))
Assoc rfl q r = rfl