This commit is contained in:
Michael Zhang 2025-01-02 10:48:16 -05:00
parent f7f4f434aa
commit aec6a34fb4
4 changed files with 56 additions and 28 deletions

View file

@ -0,0 +1,32 @@
{-# OPTIONS --cubical #-}
-- Extra stuff not in the cubical standard library
module ThesisWork.ExactCouple where
open import Cubical.Foundations.Prelude
open import Cubical.Foundations.Structure
open import Cubical.Algebra.Ring
open import Cubical.Algebra.Group
open import Cubical.Algebra.Group.DirProd
open import Cubical.Algebra.Group.Instances.Int
open import ThesisWork.Graded
private
variable
' '' : Level
module _ {R : Ring } where
×Group = DirProd Group Group
× = ×Group
record ExactCouple : Type (-suc ) where
field
D E : GradedModule R ×
i : GradedHom R ×Group D D
j : GradedHom R ×Group D E
k : GradedHom R ×Group E D
deriveExactCouple : {R : Ring } ExactCouple {R = R} ExactCouple {R = R}
deriveExactCouple = {! !}

View file

@ -15,11 +15,14 @@ private
' '' : Level
module _ {R : Ring } where
compLeftModule : {M N P : LeftModule R '}
idLeftModuleHom : (M : LeftModule R ') LeftModuleHom M M
idLeftModuleHom M = (idfun M ) , record { pres0 = refl ; pres+ = λ x y refl ; pres- = λ x refl ; pres⋆ = λ r y refl }
compLeftModuleHom : {M N P : LeftModule R '}
(f : LeftModuleHom M N)
(g : LeftModuleHom N P)
LeftModuleHom M P
compLeftModule {M = M} {N} {P} f g =
compLeftModuleHom {M = M} {N} {P} f g =
fg , record { pres0 = pres0 ; pres+ = pres+ ; pres- = pres- ; pres⋆ = pres⋆ } where
open LeftModuleStr (M .snd) using () renaming (0m to 0M; _+_ to _+M_; -_ to -M_; _⋆_ to _⋆M_)
open LeftModuleStr (N .snd) using () renaming (0m to 0N; _+_ to _+N_; -_ to -N_; _⋆_ to _⋆N_)

View file

@ -18,6 +18,7 @@ private
variable
' '' : Level
-- Using FVD's definition of graded here
graded : Type Type ' Type (-max ')
graded str I = I str
@ -35,6 +36,13 @@ module _ (R : Ring ) (G : Group ') (M₁ M₂ : GradedModule R ⟨ G ⟩)
-- Graded abelian group homomorphism (definition 5.1.1 in FVD thesis)
-- https://git.mzhang.io/michael/Spectral/src/commit/ea402f56eaf63c8668313fb4c6a382d95a45f5ea/algebra/graded.hlean#L45-L48
--
-- Wikipedia definition: A morphism (f : N → M) of graded modules,
-- called a graded morphism or graded homomorphism,
-- is a homomorphism of the underlying modules that respects grading;
-- i.e. f(Nᵢ) ⊆ Mᵢ.
--
-- Question: why did FVD use Equivalences here? Could I just use GroupHom?
record GradedHom : Type (-max (-suc ')) where
constructor mkGradedHom
field
@ -46,10 +54,14 @@ module _ (R : Ring ) (G : Group ') (M₁ M₂ : GradedModule R ⟨ G ⟩)
let e = groupEquivFun equiv in -- the function of the equivalence
{x y : G } (p : e x y) (M₁ x) -[lm]→ (M₂ y)
idGradedModuleHom : {R : Ring } {G : Group '} (M : GradedModule R G ) GradedHom R G M M
idGradedModuleHom {G = G} M = mkGradedHom idGroupEquiv (λ g sym (·IdR g)) (λ {x = x} p J (λ y p M x -[lm]→ M y) (idLeftModuleHom (M x)) p) where
open GroupStr (G .snd)
-- Composition of graded homomorphisms
gradedHomComp : {R : Ring } {G : Group '} {M₁ M₂ M₃ : GradedModule R G }
compGradedModuleHom : {R : Ring } {G : Group '} {M₁ M₂ M₃ : GradedModule R G }
(f : GradedHom R G M₁ M₂) (g : GradedHom R G M₂ M₃) GradedHom R G M₁ M₃
gradedHomComp {G = G} {M₁} {M₂} {M₃} (mkGradedHom feqv fp ffn) (mkGradedHom geqv gp gfn) =
compGradedModuleHom {G = G} {M₁} {M₂} {M₃} (mkGradedHom feqv fp ffn) (mkGradedHom geqv gp gfn) =
mkGradedHom (compGroupEquiv feqv geqv) fgp fgFn where
-- Composition of the equivalence
fgEqv : G G
@ -61,26 +73,6 @@ gradedHomComp {G = G} {M₁} {M₂} {M₃} (mkGradedHom feqv fp ffn) (mkGradedHo
f = feqv .fst .fst
g = geqv .fst .fst
fg = fgEqv .fst
-- -- Reminder: these are definitionally equal
-- _ : fg ≡ λ x → g (f x)
-- _ = refl
-- fgEqvIsGroupEquiv : IsGroupEquiv (G .snd) fgEqv (G .snd)
-- -- f(g(x · y)) ≡ f(g(x)) · f(g(y))
-- -- f(g(x) · g(y)) ≡
-- -- f(g(x)) · f(g(y)) ≡
-- fgEqvIsGroupEquiv .pres· x y =
-- let p = refl {x = g (f (x · y))} in -- g(f(x·y)) ≡ g(f(x·y))
-- let p = p ∙ cong g (feqv .snd .pres· x y) in -- g(f(x·y)) ≡ g(f(x)·f(y))
-- let p = p ∙ geqv .snd .pres· (f x) (f y) in -- g(f(x·y)) ≡ g(f(x))·g(f(y))
-- p
-- fgEqvIsGroupEquiv .pres1 = cong g (feqv .snd .pres1) ∙ geqv .snd .pres1
-- fgEqvIsGroupEquiv .presinv x =
-- let p = refl {x = g (f (inv x))} in -- g(f(inv x)) ≡ g(f(inv x))
-- let p = p ∙ cong g (feqv .snd .presinv x) in -- g(f(inv x)) ≡ g(inv(f x))
-- let p = p ∙ geqv .snd .presinv (f x) in -- g(f(inv x)) ≡ inv(g(f x))
-- p
fgp : (x : G ) fg x x · fg 1g
fgp x =
@ -91,7 +83,7 @@ gradedHomComp {G = G} {M₁} {M₂} {M₃} (mkGradedHom feqv fp ffn) (mkGradedHo
p
fgFn : {x y : G } fg x y M₁ x -[lm]→ M₃ y
fgFn {x} {y} p = compLeftModule (ffn refl) (gfn p)
fgFn {x} {y} p = compLeftModuleHom (ffn refl) (gfn p)
-- p : g(f(x)) ≡ y
-- break into f(x) ≡ z and g(z) ≡ y for some z
-- just pick z = f(x) and the second can use p

View file

@ -38,6 +38,7 @@ module _ (R : Ring ) where
-- differentials, are graded morphisms dᵣ : Eᵣ → Eᵣ such that dᵣ ◦ dᵣ = 0
d : (s : ) E s -[gm]→ E s
dᵣ∘dᵣ≡0 :
let _∘_ = λ (x y : {! !}) {! !} in
(s : ) ({! !} {! !}) {! !}
dᵣ∘dᵣ≡0 : (s : ) compGradedModuleHom (d s) (d s) idGradedModuleHom (E s)
-- Isomorphisms
-- the cohomology of the cochain complex determined by dᵣ.