Documentation

Mathlib.RingTheory.TwoSidedIdeal.Basic

Two Sided Ideals #

In this file, for any Ring R, we reinterpret I : RingCon R as a two-sided-ideal of a ring.

Main definitions and results #

structure TwoSidedIdeal (R : Type u_1) [NonUnitalNonAssocRing R] :
Type u_1

A two-sided ideal of a ring R is a subset of R that contains 0 and is closed under addition, negation, and absorbs multiplication on both sides.

  • ringCon : RingCon R

    every two-sided-ideal is induced by a congruence relation on the ring.

Instances For
    theorem TwoSidedIdeal.mem_iff {R : Type u_1} [NonUnitalNonAssocRing R] (I : TwoSidedIdeal R) (x : R) :
    x โˆˆ I โ†” I.ringCon x 0
    @[simp]
    theorem TwoSidedIdeal.mem_mk {R : Type u_1} [NonUnitalNonAssocRing R] {x : R} {c : RingCon R} :
    x โˆˆ { ringCon := c } โ†” c x 0
    @[simp]
    theorem TwoSidedIdeal.coe_mk {R : Type u_1} [NonUnitalNonAssocRing R] {c : RingCon R} :
    โ†‘{ ringCon := c } = {x : R | c x 0}
    theorem TwoSidedIdeal.rel_iff {R : Type u_1} [NonUnitalNonAssocRing R] (I : TwoSidedIdeal R) (x y : R) :
    I.ringCon x y โ†” x - y โˆˆ I

    the coercion from two-sided-ideals to sets is an order embedding

    Instances For
      @[simp]
      theorem TwoSidedIdeal.coeOrderEmbedding_apply {R : Type u_1} [NonUnitalNonAssocRing R] (aโœ : TwoSidedIdeal R) :
      coeOrderEmbedding aโœ = โ†‘aโœ
      theorem TwoSidedIdeal.le_iff {R : Type u_1} [NonUnitalNonAssocRing R] {I J : TwoSidedIdeal R} :
      I โ‰ค J โ†” โ†‘I โІ โ†‘J

      Two-sided-ideals corresponds to congruence relations on a ring.

      Instances For
        @[simp]
        theorem TwoSidedIdeal.orderIsoRingCon_symm_apply {R : Type u_1} [NonUnitalNonAssocRing R] (ringCon : RingCon R) :
        (RelIso.symm orderIsoRingCon) ringCon = { ringCon := ringCon }
        theorem TwoSidedIdeal.ext {R : Type u_1} [NonUnitalNonAssocRing R] {I J : TwoSidedIdeal R} (h : โˆ€ (x : R), x โˆˆ I โ†” x โˆˆ J) :
        I = J
        theorem TwoSidedIdeal.ext_iff {R : Type u_1} [NonUnitalNonAssocRing R] {I J : TwoSidedIdeal R} :
        I = J โ†” โˆ€ (x : R), x โˆˆ I โ†” x โˆˆ J
        theorem TwoSidedIdeal.lt_iff {R : Type u_1} [NonUnitalNonAssocRing R] (I J : TwoSidedIdeal R) :
        I < J โ†” โ†‘I โŠ‚ โ†‘J
        theorem TwoSidedIdeal.add_mem {R : Type u_1} [NonUnitalNonAssocRing R] (I : TwoSidedIdeal R) {x y : R} (hx : x โˆˆ I) (hy : y โˆˆ I) :
        x + y โˆˆ I
        theorem TwoSidedIdeal.neg_mem {R : Type u_1} [NonUnitalNonAssocRing R] (I : TwoSidedIdeal R) {x : R} (hx : x โˆˆ I) :
        -x โˆˆ I
        theorem TwoSidedIdeal.sub_mem {R : Type u_1} [NonUnitalNonAssocRing R] (I : TwoSidedIdeal R) {x y : R} (hx : x โˆˆ I) (hy : y โˆˆ I) :
        x - y โˆˆ I
        theorem TwoSidedIdeal.mul_mem_left {R : Type u_1} [NonUnitalNonAssocRing R] (I : TwoSidedIdeal R) (x y : R) (hy : y โˆˆ I) :
        x * y โˆˆ I
        theorem TwoSidedIdeal.mul_mem_right {R : Type u_1} [NonUnitalNonAssocRing R] (I : TwoSidedIdeal R) (x y : R) (hx : x โˆˆ I) :
        x * y โˆˆ I
        theorem TwoSidedIdeal.nsmul_mem {R : Type u_1} [NonUnitalNonAssocRing R] (I : TwoSidedIdeal R) {x : R} (n : โ„•) (hx : x โˆˆ I) :
        n โ€ข x โˆˆ I
        theorem TwoSidedIdeal.zsmul_mem {R : Type u_1} [NonUnitalNonAssocRing R] (I : TwoSidedIdeal R) {x : R} (n : โ„ค) (hx : x โˆˆ I) :
        n โ€ข x โˆˆ I
        def TwoSidedIdeal.mk' {R : Type u_1} [NonUnitalNonAssocRing R] (carrier : Set R) (zero_mem : 0 โˆˆ carrier) (add_mem : โˆ€ {x y : R}, x โˆˆ carrier โ†’ y โˆˆ carrier โ†’ x + y โˆˆ carrier) (neg_mem : โˆ€ {x : R}, x โˆˆ carrier โ†’ -x โˆˆ carrier) (mul_mem_left : โˆ€ {x y : R}, y โˆˆ carrier โ†’ x * y โˆˆ carrier) (mul_mem_right : โˆ€ {x y : R}, x โˆˆ carrier โ†’ x * y โˆˆ carrier) :

        The "set-theoretic-way" of constructing a two-sided ideal by providing:

        • the underlying set S;
        • a proof that 0 โˆˆ S;
        • a proof that x + y โˆˆ S if x โˆˆ S and y โˆˆ S;
        • a proof that -x โˆˆ S if x โˆˆ S;
        • a proof that x * y โˆˆ S if y โˆˆ S;
        • a proof that x * y โˆˆ S if x โˆˆ S.
        Instances For
          @[simp]
          theorem TwoSidedIdeal.mem_mk' {R : Type u_1} [NonUnitalNonAssocRing R] (carrier : Set R) (zero_mem : 0 โˆˆ carrier) (add_mem : โˆ€ {x y : R}, x โˆˆ carrier โ†’ y โˆˆ carrier โ†’ x + y โˆˆ carrier) (neg_mem : โˆ€ {x : R}, x โˆˆ carrier โ†’ -x โˆˆ carrier) (mul_mem_left : โˆ€ {x y : R}, y โˆˆ carrier โ†’ x * y โˆˆ carrier) (mul_mem_right : โˆ€ {x y : R}, x โˆˆ carrier โ†’ x * y โˆˆ carrier) (x : R) :
          x โˆˆ mk' carrier zero_mem add_mem neg_mem mul_mem_left mul_mem_right โ†” x โˆˆ carrier
          @[simp]
          theorem TwoSidedIdeal.coe_mk' {R : Type u_1} [NonUnitalNonAssocRing R] (carrier : Set R) (zero_mem : 0 โˆˆ carrier) (add_mem : โˆ€ {x y : R}, x โˆˆ carrier โ†’ y โˆˆ carrier โ†’ x + y โˆˆ carrier) (neg_mem : โˆ€ {x : R}, x โˆˆ carrier โ†’ -x โˆˆ carrier) (mul_mem_left : โˆ€ {x y : R}, y โˆˆ carrier โ†’ x * y โˆˆ carrier) (mul_mem_right : โˆ€ {x y : R}, x โˆˆ carrier โ†’ x * y โˆˆ carrier) :
          โ†‘(mk' carrier zero_mem add_mem neg_mem mul_mem_left mul_mem_right) = carrier
          @[implicit_reducible]
          instance TwoSidedIdeal.instAddSubtypeMem {R : Type u_1} [NonUnitalNonAssocRing R] (I : TwoSidedIdeal R) :
          Add โ†ฅI
          @[implicit_reducible]
          instance TwoSidedIdeal.instZeroSubtypeMem {R : Type u_1} [NonUnitalNonAssocRing R] (I : TwoSidedIdeal R) :
          Zero โ†ฅI
          @[implicit_reducible]
          instance TwoSidedIdeal.instSMulNatSubtypeMem {R : Type u_1} [NonUnitalNonAssocRing R] (I : TwoSidedIdeal R) :
          SMul โ„• โ†ฅI
          @[implicit_reducible]
          instance TwoSidedIdeal.instNegSubtypeMem {R : Type u_1} [NonUnitalNonAssocRing R] (I : TwoSidedIdeal R) :
          Neg โ†ฅI
          @[implicit_reducible]
          instance TwoSidedIdeal.instSubSubtypeMem {R : Type u_1} [NonUnitalNonAssocRing R] (I : TwoSidedIdeal R) :
          Sub โ†ฅI
          @[implicit_reducible]
          instance TwoSidedIdeal.instSMulIntSubtypeMem {R : Type u_1} [NonUnitalNonAssocRing R] (I : TwoSidedIdeal R) :
          SMul โ„ค โ†ฅI
          @[implicit_reducible]

          The coercion into the ring as a AddMonoidHom

          Instances For
            @[simp]
            theorem TwoSidedIdeal.coeAddMonoidHom_apply {R : Type u_1} [NonUnitalNonAssocRing R] (I : TwoSidedIdeal R) (self : โ†ฅI) :
            I.coeAddMonoidHom self = โ†‘self

            If I is a two-sided ideal of R, then {op x | x โˆˆ I} is a two-sided ideal in Rแตแต’แต–.

            Instances For
              @[simp]
              theorem TwoSidedIdeal.mem_op_iff {R : Type u_1} [NonUnitalNonAssocRing R] {I : TwoSidedIdeal R} {x : Rแตแต’แต–} :
              x โˆˆ I.op โ†” MulOpposite.unop x โˆˆ I

              If I is a two-sided ideal of Rแตแต’แต–, then {x.unop | x โˆˆ I} is a two-sided ideal in R.

              Instances For

                Two-sided-ideals of A and that of Aแต’แต– corresponds bijectively to each other.

                Instances For