Absolute values #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines a bundled type of absolute values absolute_value R S
.
Main definitions #
absolute_value R S
is the type of absolute values onR
mapping toS
.absolute_value.abs
is the "standard" absolute value onS
, mapping negativex
to-x
.absolute_value.to_monoid_with_zero_hom
: absolute values mapping to a linear ordered field preserve0
,*
and1
is_absolute_value
: a type class stating thatf : β → α
satisfies the axioms of an abs val
- to_mul_hom : R →ₙ* S
- nonneg' : ∀ (x : R), 0 ≤ self.to_mul_hom.to_fun x
- eq_zero' : ∀ (x : R), self.to_mul_hom.to_fun x = 0 ↔ x = 0
- add_le' : ∀ (x y : R), self.to_mul_hom.to_fun (x + y) ≤ self.to_mul_hom.to_fun x + self.to_mul_hom.to_fun y
absolute_value R S
is the type of absolute values on R
mapping to S
:
the maps that preserve *
, are nonnegative, positive definite and satisfy the triangle equality.
Instances for absolute_value
Equations
- absolute_value.zero_hom_class = {coe := λ (f : absolute_value R S), f.to_mul_hom.to_fun, coe_injective' := _, map_zero := _}
Equations
Equations
Equations
See Note [custom simps projection].
Equations
Helper instance for when there's too many metavariables to apply fun_like.has_coe_to_fun
directly.
Equations
- absolute_value.monoid_with_zero_hom_class = {coe := mul_hom_class.coe absolute_value.mul_hom_class, coe_injective' := _, map_mul := _, map_one := _, map_zero := _}
Absolute values from a nontrivial R
to a linear ordered ring preserve *
, 0
and 1
.
Equations
- abv.to_monoid_with_zero_hom = ↑abv
Absolute values from a nontrivial R
to a linear ordered ring preserve *
and 1
.
Equations
- abv.to_monoid_hom = ↑abv
Equations
- absolute_value.mul_ring_norm_class = {coe := subadditive_hom_class.coe absolute_value.subadditive_hom_class, coe_injective' := _, map_add_le_add := _, map_zero := _, map_neg_eq_map := _, map_mul := _, map_one := _, eq_zero_of_map_eq_zero := _}
absolute_value.abs
is abs
as a bundled absolute_value
.
Equations
- absolute_value.abs = {to_mul_hom := {to_fun := has_abs.abs has_neg.to_has_abs, map_mul' := _}, nonneg' := _, eq_zero' := _, add_le' := _}
Equations
- absolute_value.inhabited = {default := absolute_value.abs _inst_2}
- abv_nonneg : ∀ (x : R), 0 ≤ f x
- abv_eq_zero : ∀ {x : R}, f x = 0 ↔ x = 0
- abv_add : ∀ (x y : R), f (x + y) ≤ f x + f y
- abv_mul : ∀ (x y : R), f (x * y) = f x * f y
A function f
is an absolute value if it is nonnegative, zero only at 0, additive, and
multiplicative.
See also the type absolute_value
which represents a bundled version of absolute values.
Instances of this typeclass
A bundled absolute value is an absolute value.
Convert an unbundled is_absolute_value
to a bundled absolute_value
.
Equations
- is_absolute_value.to_absolute_value abv = {to_mul_hom := {to_fun := abv, map_mul' := _}, nonneg' := _, eq_zero' := _, add_le' := _}
abv
as a monoid_with_zero_hom
.
Equations
An absolute value as a monoid with zero homomorphism, assuming the target is a semifield.