Direct limit of modules and abelian groups #
See Atiyah-Macdonald PP.32-33, Matsumura PP.269-270
Generalizes the notion of "union", or "gluing", of incomparable modules over the same ring, or incomparable abelian groups.
It is constructed as a quotient of the free module instead of a quotient of the disjoint union so as to make the operations (addition etc.) "computable".
Main definitions #
Alias of DirectedSystem.map_self'
.
A copy of DirectedSystem.map_self
specialized to FunLike, as otherwise the
fun i j h ↦ f i j h
can confuse the simplifier.
Alias of DirectedSystem.map_map'
.
A copy of DirectedSystem.map_map
specialized to FunLike, as otherwise the
fun i j h ↦ f i j h
can confuse the simplifier.
The relation on the direct sum that generates the additive congruence that defines the colimit as a quotient.
- of_map {R : Type u_1} [Semiring R] {ι : Type u_2} [Preorder ι] {G : ι → Type u_3} [DecidableEq ι] [(i : ι) → AddCommMonoid (G i)] [(i : ι) → Module R (G i)] {f : (i j : ι) → i ≤ j → G i →ₗ[R] G j} {i j : ι} (h : i ≤ j) (x : G i) : Module.DirectLimit.Eqv f ((DirectSum.lof R ι G i) x) ((DirectSum.lof R ι G j) ((f i j h) x))
Instances For
The direct limit of a directed system is the modules glued together along the maps.
Equations
- Module.DirectLimit G f = (addConGen (Module.DirectLimit.Eqv f)).Quotient
Instances For
Equations
- Module.DirectLimit.addCommMonoid G f = (addConGen (Module.DirectLimit.Eqv f)).addCommMonoid
Equations
- Module.DirectLimit.module G f = Module.mk ⋯ ⋯
Equations
- Module.DirectLimit.addCommGroup G f = inferInstanceAs (AddCommGroup (addConGen (Module.DirectLimit.Eqv f)).Quotient)
Equations
- Module.DirectLimit.inhabited G f = { default := 0 }
Equations
- Module.DirectLimit.unique G f = inferInstanceAs (Unique (Quotient (addConGen (Module.DirectLimit.Eqv f)).toSetoid))
The canonical map from a component to the direct limit.
Equations
- Module.DirectLimit.of R ι G f i = (let __spread.0 := (addConGen (Module.DirectLimit.Eqv f)).mk'; { toFun := (↑__spread.0).toFun, map_add' := ⋯, map_smul' := ⋯ }) ∘ₗ DirectSum.lof R ι G i
Instances For
Every element of the direct limit corresponds to some element in some component of the directed system.
The universal property of the direct limit: maps from the components to another module that respect the directed system structure (i.e. make some diagram commute) give rise to a unique map out of the direct limit.
Equations
- Module.DirectLimit.lift R ι G f g Hg = { toFun := (↑((addConGen (Module.DirectLimit.Eqv f)).lift ↑(DirectSum.toModule R ι P g) ⋯)).toFun, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Consider direct limits lim G
and lim G'
with direct system f
and f'
respectively, any
family of linear maps gᵢ : Gᵢ ⟶ G'ᵢ
such that g ∘ f = f' ∘ g
induces a linear map
lim G ⟶ lim G'
.
Equations
- Module.DirectLimit.map g hg = Module.DirectLimit.lift R ι G f (fun (i : ι) => Module.DirectLimit.of R ι G' f' i ∘ₗ g i) ⋯
Instances For
Consider direct limits lim G
and lim G'
with direct system f
and f'
respectively, any
family of equivalences eᵢ : Gᵢ ≅ G'ᵢ
such that e ∘ f = f' ∘ e
induces an equivalence
lim G ≅ lim G'
.
Equations
- Module.DirectLimit.congr e he = LinearEquiv.ofLinear (Module.DirectLimit.map (fun (x : ι) => ↑(e x)) he) (Module.DirectLimit.map (fun (i : ι) => ↑(e i).symm) ⋯) ⋯ ⋯
Instances For
The direct limit constructed as a quotient of the direct sum is isomorphic to the direct limit constructed as a quotient of the disjoint union.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A component that corresponds to zero in the direct limit is already zero in some bigger module in the directed system.
The direct limit of a directed system is the abelian groups glued together along the maps.
Equations
- AddCommGroup.DirectLimit G f = Module.DirectLimit G fun (i j : ι) (hij : i ≤ j) => (f i j hij).toNatLinearMap
Instances For
Equations
- AddCommGroup.DirectLimit.instAddCommMonoid G f = Module.DirectLimit.addCommMonoid G fun (i j : ι) (hij : i ≤ j) => (f i j hij).toNatLinearMap
Equations
- AddCommGroup.DirectLimit.addCommGroup G f = Module.DirectLimit.addCommGroup G fun (i j : ι) (hij : i ≤ j) => (f i j hij).toNatLinearMap
Equations
- AddCommGroup.DirectLimit.instInhabited G f = { default := 0 }
Equations
- AddCommGroup.DirectLimit.instUniqueOfIsEmpty G f = Module.DirectLimit.unique G fun (i j : ι) (hij : i ≤ j) => (f i j hij).toNatLinearMap
The canonical map from a component to the direct limit.
Equations
- AddCommGroup.DirectLimit.of G f i = (Module.DirectLimit.of ℕ ι G (fun (i j : ι) (hij : i ≤ j) => (f i j hij).toNatLinearMap) i).toAddMonoidHom
Instances For
A component that corresponds to zero in the direct limit is already zero in some bigger module in the directed system.
The universal property of the direct limit: maps from the components to another abelian group that respect the directed system structure (i.e. make some diagram commute) give rise to a unique map out of the direct limit.
Equations
- AddCommGroup.DirectLimit.lift G f P g Hg = (Module.DirectLimit.lift ℕ ι G (fun (i j : ι) (hij : i ≤ j) => (f i j hij).toNatLinearMap) (fun (i : ι) => (g i).toNatLinearMap) Hg).toAddMonoidHom
Instances For
Consider direct limits lim G
and lim G'
with direct system f
and f'
respectively, any
family of group homomorphisms gᵢ : Gᵢ ⟶ G'ᵢ
such that g ∘ f = f' ∘ g
induces a group
homomorphism lim G ⟶ lim G'
.
Equations
- AddCommGroup.DirectLimit.map g hg = AddCommGroup.DirectLimit.lift G f (AddCommGroup.DirectLimit G' f') (fun (i : ι) => (AddCommGroup.DirectLimit.of G' f' i).comp (g i)) ⋯
Instances For
Consider direct limits lim G
and lim G'
with direct system f
and f'
respectively, any
family of equivalences eᵢ : Gᵢ ≅ G'ᵢ
such that e ∘ f = f' ∘ e
induces an equivalence
lim G ⟶ lim G'
.
Equations
- AddCommGroup.DirectLimit.congr e he = (AddCommGroup.DirectLimit.map (fun (x : ι) => ↑(e x)) he).toAddEquiv (AddCommGroup.DirectLimit.map (fun (i : ι) => ↑(e i).symm) ⋯) ⋯ ⋯