Documentation

Mathlib.Analysis.Normed.Ring.Seminorm

Seminorms and norms on rings #

This file defines seminorms and norms on rings. These definitions are useful when one needs to consider multiple (semi)norms on a given ring.

Main declarations #

For a ring R:

Notes #

The corresponding hom classes are defined in Mathlib.Analysis.Order.Hom.Basic to be used by absolute values.

References #

Tags #

ring_seminorm, ring_norm

structure RingSeminorm (R : Type u_4) [NonUnitalNonAssocRing R] extends AddGroupSeminorm :
Type u_4

A seminorm on a ring R is a function f : R → ℝ that preserves zero, takes nonnegative values, is subadditive and submultiplicative and such that f (-x) = f x for all x ∈ R.

  • toFun : R
  • map_zero' : self.toAddGroupSeminorm.toFun 0 = 0
  • add_le' : ∀ (r s : R), self.toAddGroupSeminorm.toFun (r + s) self.toAddGroupSeminorm.toFun r + self.toAddGroupSeminorm.toFun s
  • neg' : ∀ (r : R), self.toAddGroupSeminorm.toFun (-r) = self.toAddGroupSeminorm.toFun r
  • mul_le' : ∀ (x y : R), self.toAddGroupSeminorm.toFun (x * y) self.toAddGroupSeminorm.toFun x * self.toAddGroupSeminorm.toFun y

    The property of a RingSeminorm that for all x and y in the ring, the norm of x * y is less than the norm of x times the norm of y.

Instances For
    structure RingNorm (R : Type u_4) [NonUnitalNonAssocRing R] extends RingSeminorm :
    Type u_4

    A function f : R → ℝ is a norm on a (nonunital) ring if it is a seminorm and f x = 0 implies x = 0.

    • toFun : R
    • map_zero' : self.toAddGroupSeminorm.toFun 0 = 0
    • add_le' : ∀ (r s : R), self.toAddGroupSeminorm.toFun (r + s) self.toAddGroupSeminorm.toFun r + self.toAddGroupSeminorm.toFun s
    • neg' : ∀ (r : R), self.toAddGroupSeminorm.toFun (-r) = self.toAddGroupSeminorm.toFun r
    • mul_le' : ∀ (x y : R), self.toAddGroupSeminorm.toFun (x * y) self.toAddGroupSeminorm.toFun x * self.toAddGroupSeminorm.toFun y
    • eq_zero_of_map_eq_zero' : ∀ (x : R), self.toAddGroupSeminorm.toFun x = 0x = 0

      If the image under the seminorm is zero, then the argument is zero.

    Instances For
      structure MulRingSeminorm (R : Type u_4) [NonAssocRing R] extends AddGroupSeminorm :
      Type u_4

      A multiplicative seminorm on a ring R is a function f : R → ℝ that preserves zero and multiplication, takes nonnegative values, is subadditive and such that f (-x) = f x for all x.

      • toFun : R
      • map_zero' : self.toAddGroupSeminorm.toFun 0 = 0
      • add_le' : ∀ (r s : R), self.toAddGroupSeminorm.toFun (r + s) self.toAddGroupSeminorm.toFun r + self.toAddGroupSeminorm.toFun s
      • neg' : ∀ (r : R), self.toAddGroupSeminorm.toFun (-r) = self.toAddGroupSeminorm.toFun r
      • map_one' : self.toAddGroupSeminorm.toFun 1 = 1

        The proposition that the function preserves 1

      • map_mul' : ∀ (x y : R), self.toAddGroupSeminorm.toFun (x * y) = self.toAddGroupSeminorm.toFun x * self.toAddGroupSeminorm.toFun y

        The proposition that the function preserves multiplication

      Instances For
        structure MulRingNorm (R : Type u_4) [NonAssocRing R] extends MulRingSeminorm :
        Type u_4

        A multiplicative norm on a ring R is a multiplicative ring seminorm such that f x = 0 implies x = 0.

        • toFun : R
        • map_zero' : self.toAddGroupSeminorm.toFun 0 = 0
        • add_le' : ∀ (r s : R), self.toAddGroupSeminorm.toFun (r + s) self.toAddGroupSeminorm.toFun r + self.toAddGroupSeminorm.toFun s
        • neg' : ∀ (r : R), self.toAddGroupSeminorm.toFun (-r) = self.toAddGroupSeminorm.toFun r
        • map_one' : self.toAddGroupSeminorm.toFun 1 = 1
        • map_mul' : ∀ (x y : R), self.toAddGroupSeminorm.toFun (x * y) = self.toAddGroupSeminorm.toFun x * self.toAddGroupSeminorm.toFun y
        • eq_zero_of_map_eq_zero' : ∀ (x : R), self.toAddGroupSeminorm.toFun x = 0x = 0

          If the image under the seminorm is zero, then the argument is zero.

        Instances For
          Equations
          • One or more equations did not get rendered due to their size.
          @[simp]
          theorem RingSeminorm.toFun_eq_coe {R : Type u_2} [NonUnitalRing R] (p : RingSeminorm R) :
          p.toAddGroupSeminorm = p
          theorem RingSeminorm.ext {R : Type u_2} [NonUnitalRing R] {p : RingSeminorm R} {q : RingSeminorm R} :
          (∀ (x : R), p x = q x)p = q
          Equations
          • RingSeminorm.instZeroRingSeminormToNonUnitalNonAssocRing = { zero := let src := Zero.zero; { toAddGroupSeminorm := src, mul_le' := (_ : R∀ (x : R), 0 0 * Zero.zero.toFun x) } }
          theorem RingSeminorm.eq_zero_iff {R : Type u_2} [NonUnitalRing R] {p : RingSeminorm R} :
          p = 0 ∀ (x : R), p x = 0
          theorem RingSeminorm.ne_zero_iff {R : Type u_2} [NonUnitalRing R] {p : RingSeminorm R} :
          p 0 ∃ (x : R), p x 0
          Equations
          • RingSeminorm.instInhabitedRingSeminormToNonUnitalNonAssocRing = { default := 0 }

          The trivial seminorm on a ring R is the RingSeminorm taking value 0 at 0 and 1 at every other element.

          Equations
          • One or more equations did not get rendered due to their size.
          @[simp]
          theorem RingSeminorm.apply_one {R : Type u_2} [NonUnitalRing R] [DecidableEq R] (x : R) :
          1 x = if x = 0 then 0 else 1
          theorem RingSeminorm.seminorm_one_eq_one_iff_ne_zero {R : Type u_2} [Ring R] (p : RingSeminorm R) (hp : p 1 1) :
          p 1 = 1 p 0

          The norm of a NonUnitalSeminormedRing as a RingSeminorm.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            instance RingNorm.funLike {R : Type u_2} [NonUnitalRing R] :
            Equations
            • One or more equations did not get rendered due to their size.
            theorem RingNorm.toFun_eq_coe {R : Type u_2} [NonUnitalRing R] (p : RingNorm R) :
            p.toFun = p
            theorem RingNorm.ext {R : Type u_2} [NonUnitalRing R] {p : RingNorm R} {q : RingNorm R} :
            (∀ (x : R), p x = q x)p = q

            The trivial norm on a ring R is the RingNorm taking value 0 at 0 and 1 at every other element.

            Equations
            • One or more equations did not get rendered due to their size.
            @[simp]
            theorem RingNorm.apply_one (R : Type u_2) [NonUnitalRing R] [DecidableEq R] (x : R) :
            1 x = if x = 0 then 0 else 1
            Equations
            • One or more equations did not get rendered due to their size.
            @[simp]
            theorem MulRingSeminorm.toFun_eq_coe {R : Type u_2} [NonAssocRing R] (p : MulRingSeminorm R) :
            p.toAddGroupSeminorm = p
            theorem MulRingSeminorm.ext {R : Type u_2} [NonAssocRing R] {p : MulRingSeminorm R} {q : MulRingSeminorm R} :
            (∀ (x : R), p x = q x)p = q

            The trivial seminorm on a ring R is the MulRingSeminorm taking value 0 at 0 and 1 at every other element.

            Equations
            • One or more equations did not get rendered due to their size.
            @[simp]
            theorem MulRingSeminorm.apply_one {R : Type u_2} [NonAssocRing R] [DecidableEq R] [NoZeroDivisors R] [Nontrivial R] (x : R) :
            1 x = if x = 0 then 0 else 1
            Equations
            • MulRingSeminorm.instInhabitedMulRingSeminorm = { default := 1 }
            Equations
            • One or more equations did not get rendered due to their size.
            theorem MulRingNorm.toFun_eq_coe {R : Type u_2} [NonAssocRing R] (p : MulRingNorm R) :
            p.toFun = p
            theorem MulRingNorm.ext {R : Type u_2} [NonAssocRing R] {p : MulRingNorm R} {q : MulRingNorm R} :
            (∀ (x : R), p x = q x)p = q

            The trivial norm on a ring R is the MulRingNorm taking value 0 at 0 and 1 at every other element.

            Equations
            • One or more equations did not get rendered due to their size.
            @[simp]
            theorem MulRingNorm.apply_one (R : Type u_2) [NonAssocRing R] [DecidableEq R] [NoZeroDivisors R] [Nontrivial R] (x : R) :
            1 x = if x = 0 then 0 else 1
            def RingSeminorm.toRingNorm {K : Type u_4} [Field K] (f : RingSeminorm K) (hnt : f 0) :

            A nonzero ring seminorm on a field K is a ring norm.

            Equations
            • RingSeminorm.toRingNorm f hnt = { toRingSeminorm := f, eq_zero_of_map_eq_zero' := (_ : ∀ (x : K), f.toAddGroupSeminorm.toFun x = 0x = 0) }
            Instances For
              @[simp]
              theorem normRingNorm_toFun (R : Type u_4) [NonUnitalNormedRing R] :
              ∀ (a : R), (normRingNorm R).toRingSeminorm.toAddGroupSeminorm.toFun a = a

              The norm of a NonUnitalNormedRing as a RingNorm.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For