FoxDifferential.Completed.CoefficientRings.CompletedGroupAlgebraPrimePower.System.Ring.AddCommGroup

6 Theorem | 10 Instance

Fox Differential / Completed / Coefficient Rings / Prime-Power Completed Group Algebra / System / Ring / Additive Commutative Group.

import
Imported by

Declarations

instance instZeroPrimePowerCompletedGroupAlgebra : Zero (PrimePowerCompletedGroupAlgebra ℓ G) where
  zero := ⟨fun i => (0 : PrimePowerCompletedGroupAlgebraStage ℓ G i), by
    intro i j hij
    change primePowerCompletedGroupAlgebraTransition (ℓ := ℓ) (G := G) hij
      (0 : PrimePowerCompletedGroupAlgebraStage ℓ G j) = 0
    exact map_zero _⟩

The zero element is defined coordinatewise as the compatible family of zero elements at all finite stages.

instance instAddPrimePowerCompletedGroupAlgebra : Add (PrimePowerCompletedGroupAlgebra ℓ G) where
  add x y := ⟨fun i =>
      (show PrimePowerCompletedGroupAlgebraStage ℓ G i from x.1 i) +
        (show PrimePowerCompletedGroupAlgebraStage ℓ G i from y.1 i), by
    intro i j hij
    calc
      primePowerCompletedGroupAlgebraTransition (ℓ := ℓ) (G := G) hij
          ((show PrimePowerCompletedGroupAlgebraStage ℓ G j from x.1 j) +
            (show PrimePowerCompletedGroupAlgebraStage ℓ G j from y.1 j))
        =
      primePowerCompletedGroupAlgebraTransition (ℓ := ℓ) (G := G) hij
          (show PrimePowerCompletedGroupAlgebraStage ℓ G j from x.1 j) +
        primePowerCompletedGroupAlgebraTransition (ℓ := ℓ) (G := G) hij
          (show PrimePowerCompletedGroupAlgebraStage ℓ G j from y.1 j) := by
            rw [map_add]
      _ =
      (show PrimePowerCompletedGroupAlgebraStage ℓ G i from x.1 i) +
        (show PrimePowerCompletedGroupAlgebraStage ℓ G i from y.1 i) := by
            exact congrArg₂ HAdd.hAdd (x.2 i j hij) (y.2 i j hij)⟩

Addition in the prime-power completed group algebra is defined coordinatewise through finite-stage group-algebra additions.

instance instAddZeroClassPrimePowerCompletedGroupAlgebra :
    AddZeroClass (PrimePowerCompletedGroupAlgebra ℓ G) where
  zero := 0
  add := (· + ·)
  zero_add x := by
    apply Subtype.ext
    funext i
    change (0 : PrimePowerCompletedGroupAlgebraStage ℓ G i) +
      (show PrimePowerCompletedGroupAlgebraStage ℓ G i from x.1 i) =
        (show PrimePowerCompletedGroupAlgebraStage ℓ G i from x.1 i)
    simp only [zero_add]
  add_zero x := by
    apply Subtype.ext
    funext i
    change (show PrimePowerCompletedGroupAlgebraStage ℓ G i from x.1 i) +
      (0 : PrimePowerCompletedGroupAlgebraStage ℓ G i) =
        (show PrimePowerCompletedGroupAlgebraStage ℓ G i from x.1 i)
    simp only [add_zero]

Addition in the prime-power completed group algebra is defined coordinatewise through finite-stage group-algebra additions.

instance instNegPrimePowerCompletedGroupAlgebra : Neg (PrimePowerCompletedGroupAlgebra ℓ G) where
  neg x := ⟨fun i => -(show PrimePowerCompletedGroupAlgebraStage ℓ G i from x.1 i), by
    intro i j hij
    change primePowerCompletedGroupAlgebraTransition (ℓ := ℓ) (G := G) hij
        (-(show PrimePowerCompletedGroupAlgebraStage ℓ G j from x.1 j)) =
      -(show PrimePowerCompletedGroupAlgebraStage ℓ G i from x.1 i)
    rw [map_neg]
    exact congrArg Neg.neg (x.2 i j hij)⟩

Negation on the prime-power completed group algebra is defined coordinatewise through finite-stage group-algebra negations.

instance instSubPrimePowerCompletedGroupAlgebra : Sub (PrimePowerCompletedGroupAlgebra ℓ G) where
  sub x y := ⟨fun i =>
      (show PrimePowerCompletedGroupAlgebraStage ℓ G i from x.1 i) -
        (show PrimePowerCompletedGroupAlgebraStage ℓ G i from y.1 i), by
    intro i j hij
    change primePowerCompletedGroupAlgebraTransition (ℓ := ℓ) (G := G) hij
        ((show PrimePowerCompletedGroupAlgebraStage ℓ G j from x.1 j) -
          (show PrimePowerCompletedGroupAlgebraStage ℓ G j from y.1 j)) =
      (show PrimePowerCompletedGroupAlgebraStage ℓ G i from x.1 i) -
        (show PrimePowerCompletedGroupAlgebraStage ℓ G i from y.1 i)
    rw [map_sub]
    exact congrArg₂ HSub.hSub (x.2 i j hij) (y.2 i j hij)⟩

Subtraction on the completed group algebra is defined coordinatewise through the finite-stage group-algebra subtractions.

instance instSMulNatPrimePowerCompletedGroupAlgebra :
    SMul ℕ (PrimePowerCompletedGroupAlgebra ℓ G) where
  smul m x := ⟨fun i => m • (show PrimePowerCompletedGroupAlgebraStage ℓ G i from x.1 i), by
    intro i j hij
    change primePowerCompletedGroupAlgebraTransition (ℓ := ℓ) (G := G) hij
        (m • (show PrimePowerCompletedGroupAlgebraStage ℓ G j from x.1 j)) =
      m • (show PrimePowerCompletedGroupAlgebraStage ℓ G i from x.1 i)
    rw [map_nsmul]
    exact congrArg (m • ·) (x.2 i j hij)⟩

The completed group algebra carries coefficient-ring scalar multiplication by applying the scalar action at every finite quotient stage.

instance instSMulIntPrimePowerCompletedGroupAlgebra :
    SMul ℤ (PrimePowerCompletedGroupAlgebra ℓ G) where
  smul m x := ⟨fun i => m • (show PrimePowerCompletedGroupAlgebraStage ℓ G i from x.1 i), by
    intro i j hij
    change primePowerCompletedGroupAlgebraTransition (ℓ := ℓ) (G := G) hij
        (m • (show PrimePowerCompletedGroupAlgebraStage ℓ G j from x.1 j)) =
      m • (show PrimePowerCompletedGroupAlgebraStage ℓ G i from x.1 i)
    rw [map_zsmul]
    exact congrArg (m • ·) (x.2 i j hij)⟩

The completed group algebra carries coefficient-ring scalar multiplication by applying the scalar action at every finite quotient stage.

instance instAddCommGroupPrimePowerCompletedGroupAlgebraStage
    (i : PrimePowerCompletedGroupAlgebraIndex G) :
    AddCommGroup ((primePowerCompletedGroupAlgebraSystem ℓ G).X i) := by
  dsimp [primePowerCompletedGroupAlgebraSystem, PrimePowerCompletedGroupAlgebraStage]
  infer_instance

Addition in the prime-power completed group algebra is defined coordinatewise through finite-stage group-algebra additions.

instance instAddCommGroupPrimePowerCompletedGroupAlgebraFamily :
    AddCommGroup
      ((i : PrimePowerCompletedGroupAlgebraIndex G) →
        (primePowerCompletedGroupAlgebraSystem ℓ G).X i) :=
  inferInstance

Addition in the prime-power completed group algebra is defined coordinatewise through finite-stage group-algebra additions.

theorem coe_zero_primePowerCompletedGroupAlgebra :
    ((0 : PrimePowerCompletedGroupAlgebra ℓ G) :
      (i : PrimePowerCompletedGroupAlgebraIndex G) →
        (primePowerCompletedGroupAlgebraSystem ℓ G).X i) = 0

The inclusion of the prime-power completed group algebra preserves zero.

Show proof
theorem coe_add_primePowerCompletedGroupAlgebra
    (x y : PrimePowerCompletedGroupAlgebra ℓ G) :
    ((x + y : PrimePowerCompletedGroupAlgebra ℓ G) :
      (i : PrimePowerCompletedGroupAlgebraIndex G) →
        (primePowerCompletedGroupAlgebraSystem ℓ G).X i) = x + y

The inclusion of the prime-power completed group algebra preserves addition.

Show proof
theorem coe_neg_primePowerCompletedGroupAlgebra
    (x : PrimePowerCompletedGroupAlgebra ℓ G) :
    ((-x : PrimePowerCompletedGroupAlgebra ℓ G) :
      (i : PrimePowerCompletedGroupAlgebraIndex G) →
        (primePowerCompletedGroupAlgebraSystem ℓ G).X i) = -x

The inclusion of the prime-power completed group algebra preserves negation.

Show proof
theorem coe_sub_primePowerCompletedGroupAlgebra
    (x y : PrimePowerCompletedGroupAlgebra ℓ G) :
    ((x - y : PrimePowerCompletedGroupAlgebra ℓ G) :
      (i : PrimePowerCompletedGroupAlgebraIndex G) →
        (primePowerCompletedGroupAlgebraSystem ℓ G).X i) = x - y

The inclusion of the prime-power completed group algebra preserves subtraction.

Show proof
theorem coe_nsmul_primePowerCompletedGroupAlgebra
    (m : ℕ) (x : PrimePowerCompletedGroupAlgebra ℓ G) :
    ((m • x : PrimePowerCompletedGroupAlgebra ℓ G) :
      (i : PrimePowerCompletedGroupAlgebraIndex G) →
        (primePowerCompletedGroupAlgebraSystem ℓ G).X i) = m • x

The inclusion of the prime-power completed group algebra preserves natural-number scalar multiplication.

Show proof
theorem coe_zsmul_primePowerCompletedGroupAlgebra
    (m : ℤ) (x : PrimePowerCompletedGroupAlgebra ℓ G) :
    ((m • x : PrimePowerCompletedGroupAlgebra ℓ G) :
      (i : PrimePowerCompletedGroupAlgebraIndex G) →
        (primePowerCompletedGroupAlgebraSystem ℓ G).X i) = m • x

The inclusion of the prime-power completed group algebra preserves integer scalar multiplication.

Show proof
instance instAddCommGroupPrimePowerCompletedGroupAlgebra :
    AddCommGroup (PrimePowerCompletedGroupAlgebra ℓ G) :=
  Function.Injective.addCommGroup
    (fun x : PrimePowerCompletedGroupAlgebra ℓ G =>
      (x :
        (i : PrimePowerCompletedGroupAlgebraIndex G) →
          (primePowerCompletedGroupAlgebraSystem ℓ G).X i))
    Subtype.val_injective
    (coe_zero_primePowerCompletedGroupAlgebra (ℓ := ℓ) (G := G))
    (coe_add_primePowerCompletedGroupAlgebra (ℓ := ℓ) (G := G))
    (coe_neg_primePowerCompletedGroupAlgebra (ℓ := ℓ) (G := G))
    (coe_sub_primePowerCompletedGroupAlgebra (ℓ := ℓ) (G := G))
    (fun x m => coe_nsmul_primePowerCompletedGroupAlgebra (ℓ := ℓ) (G := G) m x)
    (fun x m => coe_zsmul_primePowerCompletedGroupAlgebra (ℓ := ℓ) (G := G) m x)

Addition in the prime-power completed group algebra is defined coordinatewise through finite-stage group-algebra additions.