Documentation

Mathlib.Algebra.Ring.Invertible

Theorems about additively and multiplicatively invertible elements in rings #

def AddUnits.mulLeft {R : Type u_1} [NonUnitalNonAssocSemiring R] (x : AddUnits R) (y : R) :

Multiplying an additive unit from the left produces another additive unit.

Equations
  • x.mulLeft y = { val := y * x, neg := y * x.neg, val_neg := , neg_val := }
Instances For
    @[simp]
    theorem AddUnits.val_mulLeft {R : Type u_1} [NonUnitalNonAssocSemiring R] (x : AddUnits R) (y : R) :
    (x.mulLeft y) = y * x
    @[simp]
    theorem AddUnits.val_neg_mulLeft {R : Type u_1} [NonUnitalNonAssocSemiring R] (x : AddUnits R) (y : R) :
    ↑(-x.mulLeft y) = y * x.neg

    Multiplying an additive unit from the right produces another additive unit.

    Equations
    • x.mulRight y = { val := x * y, neg := x.neg * y, val_neg := , neg_val := }
    Instances For
      @[simp]
      theorem AddUnits.val_neg_mulRight {R : Type u_1} [NonUnitalNonAssocSemiring R] (x : AddUnits R) (y : R) :
      ↑(-x.mulRight y) = x.neg * y
      @[simp]
      theorem AddUnits.val_mulRight {R : Type u_1} [NonUnitalNonAssocSemiring R] (x : AddUnits R) (y : R) :
      (x.mulRight y) = x * y
      theorem AddUnits.neg_mul_left {R : Type u_1} [NonUnitalNonAssocSemiring R] {x : AddUnits R} {y : R} :
      -x.mulLeft y = (-x).mulLeft y
      theorem AddUnits.neg_mul_eq_mul_neg {R : Type u_1} [NonUnitalNonAssocSemiring R] {x y : AddUnits R} :
      ↑(-x) * y = x * ↑(-y)
      theorem AddUnits.neg_mul_neg {R : Type u_1} [NonUnitalNonAssocSemiring R] {x y : AddUnits R} :
      ↑(-x) * ↑(-y) = x * y
      theorem IsAddUnit.mul_left {R : Type u_1} [NonUnitalNonAssocSemiring R] {x : R} (h : IsAddUnit x) (y : R) :
      IsAddUnit (y * x)
      theorem IsAddUnit.mul_right {R : Type u_1} [NonUnitalNonAssocSemiring R] {x : R} (h : IsAddUnit x) (y : R) :
      IsAddUnit (x * y)
      def invertibleNeg {R : Type u_1} [Mul R] [One R] [HasDistribNeg R] (a : R) [Invertible a] :

      -⅟a is the inverse of -a

      Equations
      Instances For
        @[simp]
        theorem invOf_neg {R : Type u_1} [Monoid R] [HasDistribNeg R] (a : R) [Invertible a] [Invertible (-a)] :
        (-a) = -a
        @[simp]
        theorem one_sub_invOf_two {R : Type u_1} [Ring R] [Invertible 2] :
        1 - 2 = 2
        @[simp]
        theorem pos_of_invertible_cast {R : Type u_1} [NonAssocSemiring R] [Nontrivial R] (n : ) [Invertible n] :
        0 < n
        theorem invOf_add_invOf {R : Type u_1} [Semiring R] (a b : R) [Invertible a] [Invertible b] :
        a + b = a * (a + b) * b
        theorem invOf_sub_invOf {R : Type u_1} [Ring R] (a b : R) [Invertible a] [Invertible b] :
        a - b = a * (b - a) * b

        A version of inv_sub_inv' for invOf.

        theorem Ring.inverse_add_inverse {R : Type u_1} [Semiring R] {a b : R} (h : IsUnit a IsUnit b) :
        inverse a + inverse b = inverse a * (a + b) * inverse b

        A version of inv_add_inv' for Ring.inverse.

        theorem Ring.inverse_sub_inverse {R : Type u_1} [Ring R] {a b : R} (h : IsUnit a IsUnit b) :
        inverse a - inverse b = inverse a * (b - a) * inverse b

        A version of inv_sub_inv' for Ring.inverse.