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 Sis the type of absolute values onRmapping toS.absolute_value.absis the "standard" absolute value onS, mapping negativexto-x.absolute_value.to_monoid_with_zero_hom: absolute values mapping to a linear ordered field preserve0,*and1is_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.