Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 8a04a53

Browse files
committedAug 2, 2024·
univalence for comm algebras with Evans help
1 parent 1e251b8 commit 8a04a53

File tree

1 file changed

+40
-11
lines changed

1 file changed

+40
-11
lines changed
 

‎Cubical/Algebra/CommAlgebraAlt/Base.agda

+40-11
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,12 @@ open import Cubical.Foundations.Structure using (⟨_⟩)
99
open import Cubical.Foundations.HLevels
1010
open import Cubical.Foundations.Univalence
1111
open import Cubical.Foundations.Transport
12+
open import Cubical.Foundations.Path
1213

1314
open import Cubical.Data.Sigma
1415

1516
open import Cubical.Algebra.CommRing
17+
open import Cubical.Algebra.CommRing.Univalence
1618
open import Cubical.Algebra.Ring
1719

1820
private
@@ -75,23 +77,50 @@ module _ {R : CommRing ℓ} where
7577

7678
CommAlgebra≡ :
7779
{A B : CommAlgebra R ℓ'}
78-
(p : (A .fst) ≡ (B .fst))
79-
(pathToEquiv $ cong fst p) .fst ∘ (A .snd) .fst ≡ (B .snd) .fst
80-
A ≡ B
81-
CommAlgebra≡ {A = A} {B = B} p q = ΣPathTransport→PathΣ A B (p , pComm)
82-
where
83-
pComm : subst (CommRingHom R) p (A .snd) ≡ B .snd
84-
pComm =
85-
CommRingHom≡
80+
(Σ[ p ∈ ((A .fst) ≡ (B .fst)) ]
81+
((pathToEquiv $ cong fst p) .fst ∘ (A .snd) .fst ≡ (B .snd) .fst))
82+
≃ (A ≡ B)
83+
CommAlgebra≡ {A = A} {B = B} =
84+
invEquiv
85+
(Σ-cong-equiv-prop
86+
(idEquiv ((A .fst) ≡ (B .fst)))
87+
(λ _ isSetCommRingHom _ _ _ _) (λ _ isSet→ is-set _ _)
88+
(λ p q sym (pComm p) ∙ cong fst q) (λ p q CommRingHom≡ (pComm p ∙ q)))
89+
∙ₑ ΣPathTransport≃PathΣ A B
90+
where open CommRingStr (B .fst .snd) using (is-set)
91+
pComm : (p : A .fst ≡ B .fst)
92+
subst (CommRingHom R) p (A .snd) .fst ≡ (pathToEquiv $ cong (λ r fst r) p) .fst ∘ A .snd .fst
93+
pComm p =
8694
(fst (subst (CommRingHom R) p (A .snd))
8795
≡⟨ sym (substCommSlice (CommRingHom R) (λ X ⟨ R ⟩ ⟨ X ⟩) (λ _ fst) p (A .snd)) ⟩
8896
subst (λ X ⟨ R ⟩ ⟨ X ⟩) p (A .snd .fst)
8997
≡⟨ fromPathP (funTypeTransp (λ _ ⟨ R ⟩) ⟨_⟩ p (A .snd .fst)) ⟩
9098
subst ⟨_⟩ p ∘ A .snd .fst ∘ subst (λ _ ⟨ R ⟩) (sym p)
9199
≡⟨ cong ((subst ⟨_⟩ p ∘ A .snd .fst) ∘_) (funExt (λ _ transportRefl _)) ⟩
92-
(pathToEquiv $ cong (λ r fst r) p) .fst ∘ A .snd .fst
93-
≡⟨ q ⟩
94-
fst (B .snd) ∎)
100+
(pathToEquiv $ cong (λ r fst r) p) .fst ∘ A .snd .fst ∎)
101+
102+
CommAlgebraPath :
103+
{A B : CommAlgebra R ℓ'}
104+
(Σ[ f ∈ CommRingEquiv (A .fst) (B .fst) ] (f .fst .fst , f .snd) ∘cr A .snd ≡ B .snd)
105+
≃ (A ≡ B)
106+
CommAlgebraPath {A = A} {B = B} =
107+
(Σ-cong-equiv
108+
(CommRingPath _ _)
109+
(λ e compPathlEquiv (computeSubst e)))
110+
∙ₑ ΣPathTransport≃PathΣ A B
111+
where computeSubst : (e : CommRingEquiv (fst A) (fst B))
112+
subst (CommRingHom R) (uaCommRing e) (A .snd)
113+
≡ (CommRingEquiv→CommRingHom e) ∘cr A .snd
114+
computeSubst e = CommRingHom≡ $
115+
(subst (CommRingHom R) (uaCommRing e) (A .snd)) .fst
116+
≡⟨ sym (substCommSlice (CommRingHom R) (λ X ⟨ R ⟩ ⟨ X ⟩) (λ _ fst) (uaCommRing e) (A .snd)) ⟩
117+
subst (λ X ⟨ R ⟩ ⟨ X ⟩) (uaCommRing e) (A .snd .fst)
118+
≡⟨ fromPathP (funTypeTransp (λ _ ⟨ R ⟩) ⟨_⟩ (uaCommRing e) (A .snd .fst)) ⟩
119+
subst ⟨_⟩ (uaCommRing e) ∘ A .snd .fst ∘ subst (λ _ ⟨ R ⟩) (sym (uaCommRing e))
120+
≡⟨ cong ((subst ⟨_⟩ (uaCommRing e) ∘ A .snd .fst) ∘_) (funExt (λ _ transportRefl _)) ⟩
121+
(subst ⟨_⟩ (uaCommRing e) ∘ (A .snd .fst))
122+
≡⟨ funExt (λ _ uaβ (e .fst) _) ⟩
123+
(CommRingEquiv→CommRingHom e ∘cr A .snd) .fst ∎
95124

96125
CommAlgebraEquiv : (A : CommAlgebra R ℓ') (B : CommAlgebra R ℓ'') Type _
97126
CommAlgebraEquiv A B = Σ[ f ∈ CommRingEquiv (A .fst) (B .fst) ] (f .fst .fst , f .snd) ∘cr A .snd ≡ B .snd

0 commit comments

Comments
 (0)
Please sign in to comment.