Euclidean absolute values #
This file defines a predicate AbsoluteValue.IsEuclidean abv
stating the
absolute value is compatible with the Euclidean domain structure on its domain.
Main definitions #
AbsoluteValue.IsEuclidean abv
is a predicate on absolute values onR
mapping toS
that preserve the order onR
arising from the Euclidean domain structure.AbsoluteValue.abs_isEuclidean
shows the "standard" absolute value onℤ
, mapping negativex
to-x
, is euclidean.
structure
AbsoluteValue.IsEuclidean
{R : Type u_1}
{S : Type u_2}
[EuclideanDomain R]
[OrderedSemiring S]
(abv : AbsoluteValue R S)
:
An absolute value abv : R → S
is Euclidean if it is compatible with the
EuclideanDomain
structure on R
, namely abv
is strictly monotone with respect to the well
founded relation ≺
on R
.
- map_lt_map_iff' : ∀ {x y : R}, abv x < abv y ↔ EuclideanDomain.r x y
The requirement of a Euclidean absolute value that
abv
is monotone with respect to≺
Instances For
@[simp]
theorem
AbsoluteValue.IsEuclidean.map_lt_map_iff
{R : Type u_1}
{S : Type u_2}
[EuclideanDomain R]
[OrderedSemiring S]
{abv : AbsoluteValue R S}
{x : R}
{y : R}
(h : AbsoluteValue.IsEuclidean abv)
:
abv x < abv y ↔ EuclideanDomain.r x y
theorem
AbsoluteValue.IsEuclidean.sub_mod_lt
{R : Type u_1}
{S : Type u_2}
[EuclideanDomain R]
[OrderedSemiring S]
{abv : AbsoluteValue R S}
(h : AbsoluteValue.IsEuclidean abv)
(a : R)
{b : R}
(hb : b ≠ 0)
:
abs : ℤ → ℤ
is a Euclidean absolute value