Documentation

Mathlib.Algebra.Ring.WithAbs

WithAbs #

WithAbs v is a type synonym for a semiring R which depends on an absolute value. The point of this is to allow the type class inference system to handle multiple sources of instances that arise from absolute values. See NumberTheory.NumberField.Completion for an example of this being used to define Archimedean completions of a number field.

Main definitions #

def WithAbs {R : Type u_1} {S : Type u_2} [Semiring R] [OrderedSemiring S] :
AbsoluteValue R SType u_1

Type synonym for a semiring which depends on an absolute value. This is a function that takes an absolute value on a semiring and returns the semiring. We use this to assign and infer instances on a semiring that depend on absolute values.

Equations
Instances For
    def WithAbs.equiv {R : Type u_1} [Semiring R] (v : AbsoluteValue R ) :

    Canonical equivalence between WithAbs v and R.

    Equations
    Instances For
      Equations
      • =
      Equations
      instance WithAbs.normedRing {R : Type u_4} [Ring R] (v : AbsoluteValue R ) :
      Equations
      instance WithAbs.normedField {K : Type u_3} [Field K] (v : AbsoluteValue K ) :
      Equations

      WithAbs.equiv preserves the ring structure.

      @[simp]
      theorem WithAbs.equiv_zero {R : Type u_1} [Semiring R] (v : AbsoluteValue R ) :
      @[simp]
      theorem WithAbs.equiv_symm_zero {R : Type u_1} [Semiring R] (v : AbsoluteValue R ) :
      (WithAbs.equiv v).symm 0 = 0
      @[simp]
      theorem WithAbs.equiv_add {R : Type u_1} [Semiring R] (v : AbsoluteValue R ) (x : WithAbs v) (y : WithAbs v) :
      @[simp]
      theorem WithAbs.equiv_symm_add {R : Type u_1} [Semiring R] (v : AbsoluteValue R ) (r : R) (s : R) :
      (WithAbs.equiv v).symm (r + s) = (WithAbs.equiv v).symm r + (WithAbs.equiv v).symm s
      @[simp]
      theorem WithAbs.equiv_sub {R : Type u_1} [Semiring R] (v : AbsoluteValue R ) (x : WithAbs v) (y : WithAbs v) [Ring R] :
      @[simp]
      theorem WithAbs.equiv_symm_sub {R : Type u_1} [Semiring R] (v : AbsoluteValue R ) (r : R) (s : R) [Ring R] :
      (WithAbs.equiv v).symm (r - s) = (WithAbs.equiv v).symm r - (WithAbs.equiv v).symm s
      @[simp]
      theorem WithAbs.equiv_neg {R : Type u_1} [Semiring R] (v : AbsoluteValue R ) (x : WithAbs v) [Ring R] :
      @[simp]
      theorem WithAbs.equiv_symm_neg {R : Type u_1} [Semiring R] (v : AbsoluteValue R ) (r : R) [Ring R] :
      (WithAbs.equiv v).symm (-r) = -(WithAbs.equiv v).symm r
      @[simp]
      theorem WithAbs.equiv_mul {R : Type u_1} [Semiring R] (v : AbsoluteValue R ) (x : WithAbs v) (y : WithAbs v) :
      @[simp]
      theorem WithAbs.equiv_symm_mul {R : Type u_1} [Semiring R] (v : AbsoluteValue R ) (x : WithAbs v) (y : WithAbs v) :
      (WithAbs.equiv v).symm (x * y) = (WithAbs.equiv v).symm x * (WithAbs.equiv v).symm y

      WithAbs.equiv as a ring equivalence.

      Equations
      Instances For