instance
instModuleMatrixForall_brauerGroup
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[DecidableEq ι]
(M : Type u_1)
[AddCommGroup M]
[Module R M]
:
Equations
- instModuleMatrixForall_brauerGroup R ι M = Module.mk ⋯ ⋯
theorem
matrix_smul_vec_def
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[DecidableEq ι]
{M : Type u_1}
[AddCommGroup M]
[Module R M]
(N : Matrix ι ι R)
(v : ι → M)
:
theorem
matrix_smul_vec_def'
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[DecidableEq ι]
{M : Type u_1}
[AddCommGroup M]
[Module R M]
(N : Matrix ι ι R)
(v : ι → M)
:
theorem
matrix_smul_vec_apply
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[DecidableEq ι]
{M : Type u_1}
[AddCommGroup M]
[Module R M]
(N : Matrix ι ι R)
(v : ι → M)
(i : ι)
:
def
toModuleCatOverMatrix
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[DecidableEq ι]
:
CategoryTheory.Functor (ModuleCat R) (ModuleCat (Matrix ι ι R))
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
toModuleCatOverMatrix_map_hom_apply
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[DecidableEq ι]
{X✝ Y✝ : ModuleCat R}
(f : X✝ ⟶ Y✝)
(v : ι → ↑X✝)
(i : ι)
:
((toModuleCatOverMatrix R ι).map f).hom v i = f.hom (v i)
@[simp]
theorem
toModuleCatOverMatrix_obj_isAddCommGroup
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[DecidableEq ι]
(M : ModuleCat R)
:
((toModuleCatOverMatrix R ι).obj M).isAddCommGroup = Pi.addCommGroup
@[simp]
theorem
toModuleCatOverMatrix_obj_carrier
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[DecidableEq ι]
(M : ModuleCat R)
:
↑((toModuleCatOverMatrix R ι).obj M) = (ι → ↑M)
@[simp]
theorem
toModuleCatOverMatrix_obj_isModule
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[DecidableEq ι]
(M : ModuleCat R)
:
((toModuleCatOverMatrix R ι).obj M).isModule = instModuleMatrixForall_brauerGroup R ι ↑M
def
fromModuleCatOverMatrix.α
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[DecidableEq ι]
[Inhabited ι]
(M : Type u_1)
[AddCommGroup M]
[Module (Matrix ι ι R) M]
:
Equations
- fromModuleCatOverMatrix.α R ι M = { carrier := Set.range fun (x : M) => Matrix.stdBasisMatrix default default 1 • x, add_mem' := ⋯, zero_mem' := ⋯, neg_mem' := ⋯ }
Instances For
@[simp]
theorem
fromModuleCatOverMatrix.coe_α
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[DecidableEq ι]
[Inhabited ι]
(M : Type u_1)
[AddCommGroup M]
[Module (Matrix ι ι R) M]
:
instance
fromModuleCatOverMatrix.module_α
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
(M : Type u_1)
[AddCommGroup M]
[Module (Matrix ι ι R) M]
:
Equations
- fromModuleCatOverMatrix.module_α R ι M = Module.mk ⋯ ⋯
@[simp]
theorem
fromModuleCatOverMatrix.smul_α_coe
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
{M : Type u_1}
[AddCommGroup M]
[Module (Matrix ι ι R) M]
(x : R)
(y : ↥(α R ι M))
:
def
fromModuleCatOverMatrix
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
:
CategoryTheory.Functor (ModuleCat (Matrix ι ι R)) (ModuleCat R)
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
fromModuleCatOverMatrix_obj_carrier
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
(M : ModuleCat (Matrix ι ι R))
:
↑((fromModuleCatOverMatrix R ι).obj M) = ↥(fromModuleCatOverMatrix.α R ι ↑M)
@[simp]
theorem
fromModuleCatOverMatrix_map_hom_apply_coe
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
{X✝ Y✝ : ModuleCat (Matrix ι ι R)}
(f : X✝ ⟶ Y✝)
(x : ↥(fromModuleCatOverMatrix.α R ι ↑X✝))
:
↑(((fromModuleCatOverMatrix R ι).map f).hom x) = f.hom ↑x
@[simp]
theorem
fromModuleCatOverMatrix_obj_isAddCommGroup
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
(M : ModuleCat (Matrix ι ι R))
:
((fromModuleCatOverMatrix R ι).obj M).isAddCommGroup = AddSubgroup.IsCommutative.addCommGroup (fromModuleCatOverMatrix.α R ι ↑M)
@[simp]
theorem
fromModuleCatOverMatrix_obj_isModule
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
(M : ModuleCat (Matrix ι ι R))
:
((fromModuleCatOverMatrix R ι).obj M).isModule = fromModuleCatOverMatrix.module_α R ι ↑M
def
matrix.unitIsoHom
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
:
(toModuleCatOverMatrix R ι).comp (fromModuleCatOverMatrix R ι) ⟶ CategoryTheory.Functor.id (ModuleCat R)
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
matrix.unitIsoHom_app_hom_apply
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
(X : ModuleCat R)
(x : ↥(fromModuleCatOverMatrix.α R ι ↑((toModuleCatOverMatrix R ι).obj X)))
:
((unitIsoHom R ι).app X).hom x = ∑ i : ι, ↑x i
def
matrix.unitIsoInv
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
:
CategoryTheory.Functor.id (ModuleCat R) ⟶ (toModuleCatOverMatrix R ι).comp (fromModuleCatOverMatrix R ι)
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
matrix.unitIsoInv_app_hom_apply_coe
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
(X : ModuleCat R)
(x : ↑X)
(a : ι)
:
↑(((unitIsoInv R ι).app X).hom x) a = Function.update 0 default x a
def
matrix.unitIso
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
:
(toModuleCatOverMatrix R ι).comp (fromModuleCatOverMatrix R ι) ≅ CategoryTheory.Functor.id (ModuleCat R)
Equations
- matrix.unitIso R ι = { hom := matrix.unitIsoHom R ι, inv := matrix.unitIsoInv R ι, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
@[simp]
theorem
matrix.unitIso_inv
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
:
(unitIso R ι).inv = unitIsoInv R ι
@[simp]
theorem
matrix.unitIso_hom
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
:
(unitIso R ι).hom = unitIsoHom R ι
noncomputable def
matrix.counitIsoHomMap
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
(M : ModuleCat (Matrix ι ι R))
:
M ≅ ((fromModuleCatOverMatrix R ι).comp (toModuleCatOverMatrix R ι)).obj M
Equations
- matrix.counitIsoHomMap R ι M = (LinearEquiv.ofBijective { toFun := fun (m : ↑M) (i : ι) => ⟨Matrix.stdBasisMatrix default i 1 • m, ⋯⟩, map_add' := ⋯, map_smul' := ⋯ } ⋯).toModuleIso
Instances For
@[simp]
theorem
matrix.counitIsoHomMap_hom_hom_apply_coe
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
(M : ModuleCat (Matrix ι ι R))
(a✝ : ↑M)
(a✝¹ : ι)
:
↑((counitIsoHomMap R ι M).hom.hom a✝ a✝¹) = Matrix.stdBasisMatrix default a✝¹ 1 • a✝
@[simp]
theorem
matrix.counitIsoHomMap_inv_hom_apply
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
(M : ModuleCat (Matrix ι ι R))
(a : ι → ↑((fromModuleCatOverMatrix R ι).obj M))
:
(counitIsoHomMap R ι M).inv.hom a = ((↑(LinearEquiv.ofBijective
{ toFun := fun (m : ↑M) (i : ι) => ⟨Matrix.stdBasisMatrix default i 1 • m, ⋯⟩, map_add' := ⋯,
map_smul' := ⋯ }
⋯)).inverse
⇑(LinearEquiv.ofBijective
{ toFun := fun (m : ↑M) (i : ι) => ⟨Matrix.stdBasisMatrix default i 1 • m, ⋯⟩, map_add' := ⋯,
map_smul' := ⋯ }
⋯).symm
⋯ ⋯)
a
noncomputable def
matrix.counitIsoHom
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
:
(fromModuleCatOverMatrix R ι).comp (toModuleCatOverMatrix R ι) ⟶ CategoryTheory.Functor.id (ModuleCat (Matrix ι ι R))
Equations
- matrix.counitIsoHom R ι = { app := fun (M : ModuleCat (Matrix ι ι R)) => (matrix.counitIsoHomMap R ι M).inv, naturality := ⋯ }
Instances For
@[simp]
theorem
matrix.counitIsoHom_app
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
(M : ModuleCat (Matrix ι ι R))
:
(counitIsoHom R ι).app M = (counitIsoHomMap R ι M).inv
noncomputable def
matrix.counitIsoInv
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
:
CategoryTheory.Functor.id (ModuleCat (Matrix ι ι R)) ⟶ (fromModuleCatOverMatrix R ι).comp (toModuleCatOverMatrix R ι)
Equations
- matrix.counitIsoInv R ι = { app := fun (M : ModuleCat (Matrix ι ι R)) => (matrix.counitIsoHomMap R ι M).hom, naturality := ⋯ }
Instances For
@[simp]
theorem
matrix.counitIsoInv_app
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
(M : ModuleCat (Matrix ι ι R))
:
(counitIsoInv R ι).app M = (counitIsoHomMap R ι M).hom
noncomputable def
matrix.counitIso
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
:
(fromModuleCatOverMatrix R ι).comp (toModuleCatOverMatrix R ι) ≅ CategoryTheory.Functor.id (ModuleCat (Matrix ι ι R))
Equations
- matrix.counitIso R ι = { hom := matrix.counitIsoHom R ι, inv := matrix.counitIsoInv R ι, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
@[simp]
theorem
matrix.counitIso_inv
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
:
(counitIso R ι).inv = counitIsoInv R ι
@[simp]
theorem
matrix.counitIso_hom
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
:
(counitIso R ι).hom = counitIsoHom R ι
@[simp]
theorem
moritaEquivalentToMatrix_inverse
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
:
(moritaEquivalentToMatrix R ι).inverse = fromModuleCatOverMatrix R ι
@[simp]
theorem
moritaEquivalentToMatrix_unitIso
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
:
(moritaEquivalentToMatrix R ι).unitIso = (matrix.unitIso R ι).symm
@[simp]
theorem
moritaEquivalentToMatrix_functor
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
:
(moritaEquivalentToMatrix R ι).functor = toModuleCatOverMatrix R ι
@[simp]
theorem
moritaEquivalentToMatrix_counitIso
(R : Type u)
[Ring R]
(ι : Type w)
[Fintype ι]
[Inhabited ι]
[DecidableEq ι]
:
(moritaEquivalentToMatrix R ι).counitIso = matrix.counitIso R ι
noncomputable def
IsMoritaEquivalent.equiv
(R : Type u)
(S : Type u')
[Ring R]
[Ring S]
[IsMoritaEquivalent R S]
:
Equations
- IsMoritaEquivalent.equiv R S = ⋯.some
Instances For
instance
IsMoritaEquivalent.instAdditiveModuleCatFunctorEquiv
(R : Type u)
(S : Type u')
[Ring R]
[Ring S]
[IsMoritaEquivalent R S]
:
(equiv R S).functor.Additive
instance
IsMoritaEquivalent.instAdditiveModuleCatInverseEquiv
(R : Type u)
(S : Type u')
[Ring R]
[Ring S]
[IsMoritaEquivalent R S]
:
(equiv R S).inverse.Additive
theorem
IsMoritaEquivalent.symm
(R : Type u)
(S : Type u')
[Ring R]
[Ring S]
[IsMoritaEquivalent R S]
:
theorem
IsMoritaEquivalent.trans
(R : Type u)
(S : Type u')
(T : Type u'')
[Ring R]
[Ring S]
[Ring T]
[IsMoritaEquivalent R S]
[IsMoritaEquivalent S T]
:
theorem
IsMoritaEquivalent.matrix'
(R : Type u)
[Ring R]
(n : ℕ)
[hn : NeZero n]
:
IsMoritaEquivalent R (Matrix (Fin n) (Fin n) R)
@[reducible, inline]
abbrev
IsMoritaEquivalent.ofIsoApp1
(R : Type u)
(S : Type u')
[Ring R]
[Ring S]
(e : R ≃+* S)
(X : ModuleCat R)
:
X ⟶ ((ModuleCat.restrictScalars e.symm.toRingHom).comp (ModuleCat.restrictScalars e.toRingHom)).obj X
Equations
- IsMoritaEquivalent.ofIsoApp1 R S e X = ModuleCat.ofHom { toFun := ⇑LinearMap.id, map_add' := ⋯, map_smul' := ⋯ }
Instances For
@[reducible, inline]
abbrev
IsMoritaEquivalent.ofIsoApp2
(R : Type u)
(S : Type u')
[Ring R]
[Ring S]
(e : R ≃+* S)
(X : ModuleCat R)
:
((ModuleCat.restrictScalars e.symm.toRingHom).comp (ModuleCat.restrictScalars e.toRingHom)).obj X ⟶ X
Equations
- IsMoritaEquivalent.ofIsoApp2 R S e X = ModuleCat.ofHom { toFun := ⇑LinearMap.id, map_add' := ⋯, map_smul' := ⋯ }
Instances For
theorem
IsMoritaEquivalent.division_ring.division_ring_exists_unique_isSimpleModule
(S : Type u)
[DivisionRing S]
(N : Type u_1)
[AddCommGroup N]
[Module S N]
[IsSimpleModule S N]
:
instance
IsMoritaEquivalent.division_ring.instAdditiveModuleCatFunctor
(R S : Type u)
[DivisionRing R]
[DivisionRing S]
(e : ModuleCat R ≌ ModuleCat S)
:
e.functor.Additive
theorem
IsMoritaEquivalent.division_ring.isSimpleModule_iff_injective_or_eq_zero
(R : Type u)
[Ring R]
(M : ModuleCat R)
:
IsSimpleModule R ↑M ↔ Nontrivial ↑M ∧ ∀ (N : ModuleCat R) (f : M ⟶ N), f = 0 ∨ Function.Injective ⇑f.hom
instance
CategoryTheory.Equivalence.nontrivial
{R S : Type u}
[Ring R]
[Ring S]
(e : ModuleCat R ≌ ModuleCat S)
(M : ModuleCat R)
[h : Nontrivial ↑M]
:
Nontrivial ↑(e.functor.obj M)
theorem
IsMoritaEquivalent.division_ring.IsSimpleModule.functor
(R S : Type u)
[Ring R]
[Ring S]
(e : ModuleCat R ≌ ModuleCat S)
(M : ModuleCat R)
[simple_module : IsSimpleModule R ↑M]
:
IsSimpleModule S ↑(e.functor.obj M)
def
IsMoritaEquivalent.division_ring.mopToEnd
(R : Type u)
[DivisionRing R]
:
Rᵐᵒᵖ →+* CategoryTheory.End (ModuleCat.of R R)
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
IsMoritaEquivalent.division_ring.mopToEnd_apply_hom_apply
(R : Type u)
[DivisionRing R]
(a : Rᵐᵒᵖ)
(x : R)
:
((mopToEnd R) a).hom x = x * MulOpposite.unop a
noncomputable def
IsMoritaEquivalent.division_ring.mopEquivEnd
(R : Type u)
[DivisionRing R]
:
Rᵐᵒᵖ ≃+* CategoryTheory.End (ModuleCat.of R R)
Equations
Instances For
def
IsMoritaEquivalent.division_ring.aux1
{R S : Type u}
[DivisionRing R]
[DivisionRing S]
(e : ModuleCat R ≌ ModuleCat S)
:
CategoryTheory.End (ModuleCat.of R R) ≃+* CategoryTheory.End (e.functor.obj (ModuleCat.of R R))
Equations
- One or more equations did not get rendered due to their size.
Instances For
noncomputable def
IsMoritaEquivalent.division_ring.aux20
(R S : Type u)
[DivisionRing R]
[DivisionRing S]
(e : ModuleCat R ≌ ModuleCat S)
:
e.functor.obj (ModuleCat.of R R) ≅ ModuleCat.of S S
Equations
- IsMoritaEquivalent.division_ring.aux20 R S e = ⋯.some.toModuleIso
Instances For
def
IsMoritaEquivalent.division_ring.aux2
(S : Type u)
[DivisionRing S]
(M N : ModuleCat S)
(f : M ≅ N)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
noncomputable def
IsMoritaEquivalent.division_ring.toRingMopEquiv
(R S : Type u)
[DivisionRing R]
[DivisionRing S]
(e : ModuleCat R ≌ ModuleCat S)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
noncomputable def
IsMoritaEquivalent.division_ring.toRingEquiv
(R S : Type u)
[DivisionRing R]
[DivisionRing S]
(e : ModuleCat R ≌ ModuleCat S)
:
R ≃+* S
Equations
- One or more equations did not get rendered due to their size.
Instances For
noncomputable def
IsMoritaEquivalent.ringEquivOfDivisionRing
(R S : Type u)
[DivisionRing R]
[DivisionRing S]
[IsMoritaEquivalent R S]
:
R ≃+* S