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.

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.

    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.

      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.

        Instances For

          Helper instance for when there's too many metavariables to apply FunLike.hasCoeToFun.

          @[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
          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, p x 0

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

          @[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

          Helper instance for when there's too many metavariables to apply FunLike.hasCoeToFun.

          theorem RingNorm.ext {R : Type u_2} [NonUnitalRing R] {p : RingNorm R} {q : RingNorm R} :
          (∀ (x : R), AddGroupSeminorm.toFun p.toAddGroupSeminorm x = AddGroupSeminorm.toFun q.toAddGroupSeminorm x) → p = q

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

          @[simp]
          theorem RingNorm.apply_one (R : Type u_2) [NonUnitalRing R] [DecidableEq R] (x : R) :
          AddGroupSeminorm.toFun 1.toAddGroupSeminorm x = if x = 0 then 0 else 1

          Helper instance for when there's too many metavariables to apply FunLike.hasCoeToFun.

          @[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.

          @[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

          Helper instance for when there's too many metavariables to apply FunLike.hasCoeToFun.

          theorem MulRingNorm.ext {R : Type u_2} [NonAssocRing R] {p : MulRingNorm R} {q : MulRingNorm R} :
          (∀ (x : R), AddGroupSeminorm.toFun p.toAddGroupSeminorm x = AddGroupSeminorm.toFun q.toAddGroupSeminorm x) → p = q

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

          @[simp]
          theorem MulRingNorm.apply_one (R : Type u_2) [NonAssocRing R] [DecidableEq R] [NoZeroDivisors R] [Nontrivial R] (x : R) :
          AddGroupSeminorm.toFun 1.toAddGroupSeminorm 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.

          Instances For
            @[simp]
            theorem normRingNorm_toFun (R : Type u_4) [NonUnitalNormedRing R] :
            ∀ (a : R), AddGroupSeminorm.toFun (normRingNorm R).toRingSeminorm.toAddGroupSeminorm a = a

            The norm of a NonUnitalNormedRing as a RingNorm.

            Instances For