Documentation

Mathlib.Algebra.Colimit.DirectLimit

Direct limit of algebraic structures #

We introduce all kinds of algebraic instances on DirectLimit, and specialize to the cases of modules and rings, showing that they are indeed colimits in the respective categories.

Implementation notes #

The first 400 lines are boilerplate code that defines algebraic instances on DirectLimit from magma (Mul) to Field. To make everything "hom-polymorphic", we work with DirectedSystems of FunLikes rather than plain unbundled functions, and we use algebraic hom typeclasses (e.g. LinearMapClass, RingHomClass) everywhere.

In Mathlib.Algebra.Colimit.ModuleRing, Module.DirectLimit, AddCommGroup.DirectLimit and Ring.DirectLimit are defined as quotients of the universal objects (DirectSum and FreeCommRing). These definitions are more general and suitable for arbitrary colimits, but do not immediately provide criteria to determine when two elements in a component are equal in the direct limit.

On the other hand, the DirectLimit in this file is only defined for directed systems and does not work for general colimits, but the equivalence relation defining DirectLimit is very explicit. For colimits of directed systems there is no need to construct the universal object for each type of algebraic structure; the same type DirectLimit simply works for all of them. This file is therefore more general than the ModuleRing file in terms of the variety of algebraic structures supported.

So far we only show that DirectLimit is the colimit in the categories of modules and rings, but for the other algebraic structures the constructions and proofs will be easy following the same pattern. Since any two colimits are isomorphic, this allows us to golf proofs of equality criteria for Module/AddCommGroup/Ring.DirectLimit.

noncomputable instance DirectLimit.instOne {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → One (G i)] :
Equations
noncomputable instance DirectLimit.instZero {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → Zero (G i)] :
Equations
theorem DirectLimit.one_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → One (G i)] [∀ (i j : ι) (h : i j), OneHomClass (T h) (G i) (G j)] (i : ι) :
1 = i, 1
theorem DirectLimit.zero_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → Zero (G i)] [∀ (i j : ι) (h : i j), ZeroHomClass (T h) (G i) (G j)] (i : ι) :
0 = i, 0
theorem DirectLimit.exists_eq_one {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → One (G i)] [∀ (i j : ι) (h : i j), OneHomClass (T h) (G i) (G j)] (x : (i : ι) × G i) :
x = 1 ∃ (i : ι) (h : x.fst i), (f x.fst i h) x.snd = 1
theorem DirectLimit.exists_eq_zero {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → Zero (G i)] [∀ (i j : ι) (h : i j), ZeroHomClass (T h) (G i) (G j)] (x : (i : ι) × G i) :
x = 0 ∃ (i : ι) (h : x.fst i), (f x.fst i h) x.snd = 0
noncomputable instance DirectLimit.instMul {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [(i : ι) → Mul (G i)] [∀ (i j : ι) (h : i j), MulHomClass (T h) (G i) (G j)] :
Equations
  • DirectLimit.instMul = { mul := DirectLimit.map₂ f f f (fun (x : ι) (x1 x2 : G x) => x1 * x2) }
noncomputable instance DirectLimit.instAdd {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [(i : ι) → Add (G i)] [∀ (i j : ι) (h : i j), AddHomClass (T h) (G i) (G j)] :
Equations
  • DirectLimit.instAdd = { add := DirectLimit.map₂ f f f (fun (x : ι) (x1 x2 : G x) => x1 + x2) }
theorem DirectLimit.mul_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [(i : ι) → Mul (G i)] [∀ (i j : ι) (h : i j), MulHomClass (T h) (G i) (G j)] (i : ι) (x y : G i) :
i, x * i, y = i, x * y
theorem DirectLimit.add_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [(i : ι) → Add (G i)] [∀ (i j : ι) (h : i j), AddHomClass (T h) (G i) (G j)] (i : ι) (x y : G i) :
i, x + i, y = i, x + y
noncomputable instance DirectLimit.instCommMagmaOfMulHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [(i : ι) → CommMagma (G i)] [∀ (i j : ι) (h : i j), MulHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instAddCommMagmaOfAddHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [(i : ι) → AddCommMagma (G i)] [∀ (i j : ι) (h : i j), AddHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instSemigroupOfMulHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [(i : ι) → Semigroup (G i)] [∀ (i j : ι) (h : i j), MulHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instAddSemigroupOfAddHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [(i : ι) → AddSemigroup (G i)] [∀ (i j : ι) (h : i j), AddHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instCommSemigroupOfMulHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [(i : ι) → CommSemigroup (G i)] [∀ (i j : ι) (h : i j), MulHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instAddCommSemigroupOfAddHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [(i : ι) → AddCommSemigroup (G i)] [∀ (i j : ι) (h : i j), AddHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instSMul {R : Type u_1} {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [(i : ι) → SMul R (G i)] [∀ (i j : ι) (h : i j), MulActionHomClass (T h) R (G i) (G j)] :
Equations
  • DirectLimit.instSMul = { smul := fun (r : R) => DirectLimit.map f f (fun (x : ι) (x_1 : G x) => r x_1) }
noncomputable instance DirectLimit.instVAdd {R : Type u_1} {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [(i : ι) → VAdd R (G i)] [∀ (i j : ι) (h : i j), AddActionHomClass (T h) R (G i) (G j)] :
Equations
  • DirectLimit.instVAdd = { vadd := fun (r : R) => DirectLimit.map f f (fun (x : ι) (x_1 : G x) => r +ᵥ x_1) }
theorem DirectLimit.smul_def {R : Type u_1} {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [(i : ι) → SMul R (G i)] [∀ (i j : ι) (h : i j), MulActionHomClass (T h) R (G i) (G j)] (i : ι) (x : G i) (r : R) :
r i, x = i, r x
theorem DirectLimit.vadd_def {R : Type u_1} {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [(i : ι) → VAdd R (G i)] [∀ (i j : ι) (h : i j), AddActionHomClass (T h) R (G i) (G j)] (i : ι) (x : G i) (r : R) :
r +ᵥ i, x = i, r +ᵥ x
noncomputable instance DirectLimit.instMulActionOfMulActionHomClass {R : Type u_1} {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Monoid R] [(i : ι) → MulAction R (G i)] [∀ (i j : ι) (h : i j), MulActionHomClass (T h) R (G i) (G j)] :
Equations
  • DirectLimit.instMulActionOfMulActionHomClass = MulAction.mk
noncomputable instance DirectLimit.instAddActionOfAddActionHomClass {R : Type u_1} {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [AddMonoid R] [(i : ι) → AddAction R (G i)] [∀ (i j : ι) (h : i j), AddActionHomClass (T h) R (G i) (G j)] :
Equations
  • DirectLimit.instAddActionOfAddActionHomClass = AddAction.mk
noncomputable instance DirectLimit.instMulOneClassOfMonoidHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → MulOneClass (G i)] [∀ (i j : ι) (h : i j), MonoidHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instAddZeroClassOfAddMonoidHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → AddZeroClass (G i)] [∀ (i j : ι) (h : i j), AddMonoidHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instMonoid {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → Monoid (G i)] [∀ (i j : ι) (h : i j), MonoidHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instAddMonoid {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → AddMonoid (G i)] [∀ (i j : ι) (h : i j), AddMonoidHomClass (T h) (G i) (G j)] :
Equations
theorem DirectLimit.npow_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → Monoid (G i)] [∀ (i j : ι) (h : i j), MonoidHomClass (T h) (G i) (G j)] (i : ι) (x : G i) (n : ) :
i, x ^ n = i, x ^ n
theorem DirectLimit.nsmul_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → AddMonoid (G i)] [∀ (i j : ι) (h : i j), AddMonoidHomClass (T h) (G i) (G j)] (i : ι) (x : G i) (n : ) :
n i, x = i, n x
noncomputable instance DirectLimit.instCommMonoidOfMonoidHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → CommMonoid (G i)] [∀ (i j : ι) (h : i j), MonoidHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instAddCommMonoidOfAddMonoidHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → AddCommMonoid (G i)] [∀ (i j : ι) (h : i j), AddMonoidHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instGroup {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → Group (G i)] [∀ (i j : ι) (h : i j), MonoidHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instAddGroup {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → AddGroup (G i)] [∀ (i j : ι) (h : i j), AddMonoidHomClass (T h) (G i) (G j)] :
Equations
theorem DirectLimit.inv_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → Group (G i)] [∀ (i j : ι) (h : i j), MonoidHomClass (T h) (G i) (G j)] (i : ι) (x : G i) :
(⟦i, x⟧)⁻¹ = i, x⁻¹
theorem DirectLimit.neg_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → AddGroup (G i)] [∀ (i j : ι) (h : i j), AddMonoidHomClass (T h) (G i) (G j)] (i : ι) (x : G i) :
-i, x = i, -x
theorem DirectLimit.div_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → Group (G i)] [∀ (i j : ι) (h : i j), MonoidHomClass (T h) (G i) (G j)] (i : ι) (x y : G i) :
i, x / i, y = i, x / y
theorem DirectLimit.sub_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → AddGroup (G i)] [∀ (i j : ι) (h : i j), AddMonoidHomClass (T h) (G i) (G j)] (i : ι) (x y : G i) :
i, x - i, y = i, x - y
theorem DirectLimit.zpow_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → Group (G i)] [∀ (i j : ι) (h : i j), MonoidHomClass (T h) (G i) (G j)] (i : ι) (x : G i) (n : ) :
i, x ^ n = i, x ^ n
theorem DirectLimit.zsmul_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → AddGroup (G i)] [∀ (i j : ι) (h : i j), AddMonoidHomClass (T h) (G i) (G j)] (i : ι) (x : G i) (n : ) :
n i, x = i, n x
noncomputable instance DirectLimit.instCommGroupOfMonoidHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → CommGroup (G i)] [∀ (i j : ι) (h : i j), MonoidHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instAddCommGroupOfAddMonoidHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → AddCommGroup (G i)] [∀ (i j : ι) (h : i j), AddMonoidHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instMulZeroClassOfMulHomClassOfZeroHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → MulZeroClass (G i)] [∀ (i j : ι) (h : i j), MulHomClass (T h) (G i) (G j)] [∀ (i j : ι) (h : i j), ZeroHomClass (T h) (G i) (G j)] :
Equations
  • DirectLimit.instMulZeroClassOfMulHomClassOfZeroHomClass = MulZeroClass.mk
noncomputable instance DirectLimit.instMulZeroOneClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → MulZeroOneClass (G i)] [∀ (i j : ι) (h : i j), MonoidWithZeroHomClass (T h) (G i) (G j)] :
Equations
instance DirectLimit.instNontrivial {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → MulZeroOneClass (G i)] [∀ (i j : ι) (h : i j), MonoidWithZeroHomClass (T h) (G i) (G j)] [∀ (i : ι), Nontrivial (G i)] :
noncomputable instance DirectLimit.instSemigroupWithZeroOfMulHomClassOfZeroHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → SemigroupWithZero (G i)] [∀ (i j : ι) (h : i j), MulHomClass (T h) (G i) (G j)] [∀ (i j : ι) (h : i j), ZeroHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instMonoidWithZeroOfMonoidWithZeroHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → MonoidWithZero (G i)] [∀ (i j : ι) (h : i j), MonoidWithZeroHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instCommMonoidWithZeroOfMonoidWithZeroHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → CommMonoidWithZero (G i)] [∀ (i j : ι) (h : i j), MonoidWithZeroHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instGroupWithZero {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → GroupWithZero (G i)] [∀ (i j : ι) (h : i j), MonoidWithZeroHomClass (T h) (G i) (G j)] :
Equations
theorem DirectLimit.inv₀_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → GroupWithZero (G i)] [∀ (i j : ι) (h : i j), MonoidWithZeroHomClass (T h) (G i) (G j)] (i : ι) (x : G i) :
(⟦i, x⟧)⁻¹ = i, x⁻¹
theorem DirectLimit.div₀_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → GroupWithZero (G i)] [∀ (i j : ι) (h : i j), MonoidWithZeroHomClass (T h) (G i) (G j)] (i : ι) (x y : G i) :
i, x / i, y = i, x / y
theorem DirectLimit.zpow₀_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → GroupWithZero (G i)] [∀ (i j : ι) (h : i j), MonoidWithZeroHomClass (T h) (G i) (G j)] (i : ι) (x : G i) (n : ) :
i, x ^ n = i, x ^ n
noncomputable instance DirectLimit.instCommGroupWithZeroOfMonoidWithZeroHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → CommGroupWithZero (G i)] [∀ (i j : ι) (h : i j), MonoidWithZeroHomClass (T h) (G i) (G j)] :
Equations
  • DirectLimit.instCommGroupWithZeroOfMonoidWithZeroHomClass = CommGroupWithZero.mk GroupWithZero.zpow
noncomputable instance DirectLimit.instAddMonoidWithOne {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → AddMonoidWithOne (G i)] [∀ (i j : ι) (h : i j), AddMonoidHomClass (T h) (G i) (G j)] :
Equations
theorem DirectLimit.natCast_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → AddMonoidWithOne (G i)] [∀ (i j : ι) (h : i j), AddMonoidHomClass (T h) (G i) (G j)] [∀ (i j : ι) (h : i j), OneHomClass (T h) (G i) (G j)] (n : ) (i : ι) :
n = i, n
noncomputable instance DirectLimit.instAddGroupWithOne {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → AddGroupWithOne (G i)] [∀ (i j : ι) (h : i j), AddMonoidHomClass (T h) (G i) (G j)] :
Equations
  • DirectLimit.instAddGroupWithOne = AddGroupWithOne.mk SubNegMonoid.zsmul
theorem DirectLimit.intCast_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → AddGroupWithOne (G i)] [∀ (i j : ι) (h : i j), AddMonoidHomClass (T h) (G i) (G j)] [∀ (i j : ι) (h : i j), OneHomClass (T h) (G i) (G j)] (n : ) (i : ι) :
n = i, n
noncomputable instance DirectLimit.instAddCommMonoidWithOneOfAddMonoidHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → AddCommMonoidWithOne (G i)] [∀ (i j : ι) (h : i j), AddMonoidHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instAddCommGroupWithOneOfAddMonoidHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → AddCommGroupWithOne (G i)] [∀ (i j : ι) (h : i j), AddMonoidHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instNonUnitalNonAssocSemiringOfNonUnitalRingHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → NonUnitalNonAssocSemiring (G i)] [∀ (i j : ι) (h : i j), NonUnitalRingHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instNonUnitalNonAssocCommSemiringOfNonUnitalRingHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → NonUnitalNonAssocCommSemiring (G i)] [∀ (i j : ι) (h : i j), NonUnitalRingHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instNonUnitalSemiringOfNonUnitalRingHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → NonUnitalSemiring (G i)] [∀ (i j : ι) (h : i j), NonUnitalRingHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instNonUnitalCommSemiringOfNonUnitalRingHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → NonUnitalCommSemiring (G i)] [∀ (i j : ι) (h : i j), NonUnitalRingHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instNonAssocSemiringOfRingHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → NonAssocSemiring (G i)] [∀ (i j : ι) (h : i j), RingHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instSemiringOfRingHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → Semiring (G i)] [∀ (i j : ι) (h : i j), RingHomClass (T h) (G i) (G j)] :
Equations
  • DirectLimit.instSemiringOfRingHomClass = Semiring.mk Monoid.npow
noncomputable instance DirectLimit.instCommSemiringOfRingHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → CommSemiring (G i)] [∀ (i j : ι) (h : i j), RingHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instRingOfRingHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → Ring (G i)] [∀ (i j : ι) (h : i j), RingHomClass (T h) (G i) (G j)] :
Equations
  • DirectLimit.instRingOfRingHomClass = Ring.mk SubNegMonoid.zsmul
noncomputable instance DirectLimit.instCommRingOfRingHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → CommRing (G i)] [∀ (i j : ι) (h : i j), RingHomClass (T h) (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instSMulZeroClassOfMulActionHomClass {R : Type u_1} {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → Zero (G i)] [(i : ι) → SMulZeroClass R (G i)] [∀ (i j : ι) (h : i j), MulActionHomClass (T h) R (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instSMulWithZeroOfMulActionHomClassOfZeroHomClass {R : Type u_1} {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [Zero R] [(i : ι) → Zero (G i)] [(i : ι) → SMulWithZero R (G i)] [∀ (i j : ι) (h : i j), MulActionHomClass (T h) R (G i) (G j)] [∀ (i j : ι) (h : i j), ZeroHomClass (T h) (G i) (G j)] :
Equations
  • DirectLimit.instSMulWithZeroOfMulActionHomClassOfZeroHomClass = SMulWithZero.mk
noncomputable instance DirectLimit.instDistribSMulOfMulActionHomClass {R : Type u_1} {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → AddZeroClass (G i)] [(i : ι) → DistribSMul R (G i)] [∀ (i j : ι) (h : i j), AddMonoidHomClass (T h) (G i) (G j)] [∀ (i j : ι) (h : i j), MulActionHomClass (T h) R (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instDistribMulAction {R : Type u_1} {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [Monoid R] [(i : ι) → AddMonoid (G i)] [(i : ι) → DistribMulAction R (G i)] [∀ (i j : ι) (h : i j), DistribMulActionHomClass (T h) R (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instMulDistribMulActionOfMulActionHomClass {R : Type u_1} {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [Monoid R] [(i : ι) → Monoid (G i)] [(i : ι) → MulDistribMulAction R (G i)] [∀ (i j : ι) (h : i j), MonoidHomClass (T h) (G i) (G j)] [∀ (i j : ι) (h : i j), MulActionHomClass (T h) R (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instModule {R : Type u_1} {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [Semiring R] [(i : ι) → AddCommMonoid (G i)] [(i : ι) → Module R (G i)] [∀ (i j : ι) (h : i j), LinearMapClass (T h) R (G i) (G j)] :
Equations
noncomputable instance DirectLimit.instDivisionSemiring {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → DivisionSemiring (G i)] [∀ (i j : ι) (h : i j), RingHomClass (T h) (G i) (G j)] :
Equations
theorem DirectLimit.nnratCast_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → DivisionSemiring (G i)] [∀ (i j : ι) (h : i j), RingHomClass (T h) (G i) (G j)] (q : ℚ≥0) (i : ι) :
q = i, q
noncomputable instance DirectLimit.instSemifieldOfRingHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → Semifield (G i)] [∀ (i j : ι) (h : i j), RingHomClass (T h) (G i) (G j)] :
Equations
  • DirectLimit.instSemifieldOfRingHomClass = Semifield.mk DivisionSemiring.zpow DivisionSemiring.nnqsmul
noncomputable instance DirectLimit.instDivisionRing {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → DivisionRing (G i)] [∀ (i j : ι) (h : i j), RingHomClass (T h) (G i) (G j)] :
Equations
  • DirectLimit.instDivisionRing = DivisionRing.mk DivisionSemiring.zpow DivisionSemiring.nnqsmul (fun (q : ) => DirectLimit.map f f (fun (x : ι) (x_1 : G x) => q x_1) )
theorem DirectLimit.ratCast_def {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → DivisionRing (G i)] [∀ (i j : ι) (h : i j), RingHomClass (T h) (G i) (G j)] (q : ) (i : ι) :
q = i, q
noncomputable instance DirectLimit.instFieldOfRingHomClass {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Nonempty ι] [(i : ι) → Field (G i)] [∀ (i j : ι) (h : i j), RingHomClass (T h) (G i) (G j)] :
Equations
  • DirectLimit.instFieldOfRingHomClass = Field.mk DivisionRing.zpow DivisionRing.nnqsmul DivisionRing.qsmul
noncomputable def DirectLimit.Module.of (R : Type u_1) (ι : Type u_2) [Preorder ι] (G : ιType u_3) {T : i j : ι⦄ → i jType u_4} (f : (x x_1 : ι) → (h : x x_1) → T h) [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Semiring R] [(i : ι) → AddCommMonoid (G i)] [(i : ι) → Module R (G i)] [∀ (i j : ι) (h : i j), LinearMapClass (T h) R (G i) (G j)] [Nonempty ι] (i : ι) :

The canonical map from a component to the direct limit.

Equations
  • DirectLimit.Module.of R ι G f i = { toFun := fun (x : G i) => i, x, map_add' := , map_smul' := }
Instances For
    @[simp]
    theorem DirectLimit.Module.of_f {R : Type u_1} {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Semiring R] [(i : ι) → AddCommMonoid (G i)] [(i : ι) → Module R (G i)] [∀ (i j : ι) (h : i j), LinearMapClass (T h) R (G i) (G j)] [Nonempty ι] {i j : ι} {hij : i j} {x : G i} :
    (DirectLimit.Module.of R ι G f j) ((f i j hij) x) = (DirectLimit.Module.of R ι G f i) x
    noncomputable def DirectLimit.Module.lift (R : Type u_1) (ι : Type u_2) [Preorder ι] (G : ιType u_3) {T : i j : ι⦄ → i jType u_4} (f : (x x_1 : ι) → (h : x x_1) → T h) [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Semiring R] [(i : ι) → AddCommMonoid (G i)] [(i : ι) → Module R (G i)] [∀ (i j : ι) (h : i j), LinearMapClass (T h) R (G i) (G j)] [Nonempty ι] {P : Type u_5} [AddCommMonoid P] [Module R P] (g : (i : ι) → G i →ₗ[R] P) (Hg : ∀ (i j : ι) (hij : i j) (x : G i), (g j) ((f i j hij) x) = (g i) x) :

    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
    Instances For
      theorem DirectLimit.Module.lift_of {R : Type u_1} {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [Semiring R] [(i : ι) → AddCommMonoid (G i)] [(i : ι) → Module R (G i)] [∀ (i j : ι) (h : i j), LinearMapClass (T h) R (G i) (G j)] [Nonempty ι] {P : Type u_5} [AddCommMonoid P] [Module R P] (g : (i : ι) → G i →ₗ[R] P) (Hg : ∀ (i j : ι) (hij : i j) (x : G i), (g j) ((f i j hij) x) = (g i) x) {i : ι} (x : G i) :
      (DirectLimit.Module.lift R ι G f g Hg) ((DirectLimit.Module.of R ι G f i) x) = (g i) x
      noncomputable def DirectLimit.Ring.of {ι : Type u_2} [Preorder ι] (G : ιType u_3) {T : i j : ι⦄ → i jType u_4} (f : (x x_1 : ι) → (h : x x_1) → T h) [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [(i : ι) → NonAssocSemiring (G i)] [∀ (i j : ι) (h : i j), RingHomClass (T h) (G i) (G j)] [Nonempty ι] (i : ι) :

      The canonical map from a component to the direct limit.

      Equations
      • DirectLimit.Ring.of G f i = { toFun := fun (x : G i) => i, x, map_one' := , map_mul' := , map_zero' := , map_add' := }
      Instances For
        @[simp]
        theorem DirectLimit.Ring.of_f {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [(i : ι) → NonAssocSemiring (G i)] [∀ (i j : ι) (h : i j), RingHomClass (T h) (G i) (G j)] [Nonempty ι] {i j : ι} (hij : i j) (x : G i) :
        (DirectLimit.Ring.of G f j) ((f i j hij) x) = (DirectLimit.Ring.of G f i) x
        noncomputable def DirectLimit.Ring.lift {ι : Type u_2} [Preorder ι] (G : ιType u_3) {T : i j : ι⦄ → i jType u_4} (f : (x x_1 : ι) → (h : x x_1) → T h) [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [(i : ι) → NonAssocSemiring (G i)] [∀ (i j : ι) (h : i j), RingHomClass (T h) (G i) (G j)] [Nonempty ι] (P : Type u_5) [NonAssocSemiring P] (g : (i : ι) → G i →+* P) (Hg : ∀ (i j : ι) (hij : i j) (x : G i), (g j) ((f i j hij) x) = (g i) x) :

        The universal property of the direct limit: maps from the components to another ring that respect the directed system structure (i.e. make some diagram commute) give rise to a unique map out of the direct limit.

        Equations
        Instances For
          @[simp]
          theorem DirectLimit.Ring.lift_of {ι : Type u_2} [Preorder ι] {G : ιType u_3} {T : i j : ι⦄ → i jType u_4} {f : (x x_1 : ι) → (h : x x_1) → T h} [(i j : ι) → (h : i j) → FunLike (T h) (G i) (G j)] [DirectedSystem G fun (x1 x2 : ι) (x3 : x1 x2) => (f x1 x2 x3)] [IsDirected ι fun (x1 x2 : ι) => x1 x2] [(i : ι) → NonAssocSemiring (G i)] [∀ (i j : ι) (h : i j), RingHomClass (T h) (G i) (G j)] [Nonempty ι] (P : Type u_5) [NonAssocSemiring P] (g : (i : ι) → G i →+* P) (Hg : ∀ (i j : ι) (hij : i j) (x : G i), (g j) ((f i j hij) x) = (g i) x) (i : ι) (x : G i) :
          (DirectLimit.Ring.lift G f P g Hg) ((DirectLimit.Ring.of G f i) x) = (g i) x