Module docstring
{"# Pulling back ordered rings along injective maps "}
{"# Pulling back ordered rings along injective maps "}
Function.Injective.isOrderedRing
theorem
[IsOrderedRing R] (zero : f 0 = 0) (one : f 1 = 1) (add : ∀ x y, f (x + y) = f x + f y)
(mul : ∀ x y, f (x * y) = f x * f y) (nsmul : ∀ (n : ℕ) (x), f (n • x) = n • f x)
(npow : ∀ (x) (n : ℕ), f (x ^ n) = f x ^ n) (natCast : ∀ n : ℕ, f n = n) :
letI _ : Semiring S := hf.semiring f zero one add mul nsmul npow natCast
letI _ : PartialOrder S := PartialOrder.lift f hf
IsOrderedRing S
/-- Pullback an `IsOrderedRing` under an injective map. -/
protected lemma isOrderedRing [IsOrderedRing R] (zero : f 0 = 0) (one : f 1 = 1)
(add : ∀ x y, f (x + y) = f x + f y) (mul : ∀ x y, f (x * y) = f x * f y)
(nsmul : ∀ (n : ℕ) (x), f (n • x) = n • f x) (npow : ∀ (x) (n : ℕ), f (x ^ n) = f x ^ n)
(natCast : ∀ n : ℕ, f n = n) :
letI _ : Semiring S := hf.semiring f zero one add mul nsmul npow natCast
letI _ : PartialOrder S := PartialOrder.lift f hf
IsOrderedRing S :=
letI _ : Semiring S := hf.semiring f zero one add mul nsmul npow natCast
letI _ : PartialOrder S := PartialOrder.lift f hf
{ __ := hf.isOrderedAddMonoid f zero add (swap nsmul)
zero_le_one := show f 0 ≤ f 1 by simp only [zero, one, zero_le_one]
mul_le_mul_of_nonneg_left a b c h hc := show f (c * a) ≤ f (c * b) by
rw [mul, mul]; refine mul_le_mul_of_nonneg_left h ?_; rwa [← zero]
mul_le_mul_of_nonneg_right a b c h hc := show f (a * c) ≤ f (b * c) by
rw [mul, mul]; refine mul_le_mul_of_nonneg_right h ?_; rwa [← zero] }
Function.Injective.isStrictOrderedRing
theorem
[IsStrictOrderedRing R] (zero : f 0 = 0) (one : f 1 = 1) (add : ∀ x y, f (x + y) = f x + f y)
(mul : ∀ x y, f (x * y) = f x * f y) (nsmul : ∀ (n : ℕ) (x), f (n • x) = n • f x)
(npow : ∀ (x) (n : ℕ), f (x ^ n) = f x ^ n) (natCast : ∀ n : ℕ, f n = n) :
letI _ : Semiring S := hf.semiring f zero one add mul nsmul npow natCast
letI _ : PartialOrder S := PartialOrder.lift f hf
IsStrictOrderedRing S
/-- Pullback a `IsStrictOrderedRing` under an injective map. -/
protected lemma isStrictOrderedRing [IsStrictOrderedRing R] (zero : f 0 = 0) (one : f 1 = 1)
(add : ∀ x y, f (x + y) = f x + f y) (mul : ∀ x y, f (x * y) = f x * f y)
(nsmul : ∀ (n : ℕ) (x), f (n • x) = n • f x) (npow : ∀ (x) (n : ℕ), f (x ^ n) = f x ^ n)
(natCast : ∀ n : ℕ, f n = n) :
letI _ : Semiring S := hf.semiring f zero one add mul nsmul npow natCast
letI _ : PartialOrder S := PartialOrder.lift f hf
IsStrictOrderedRing S :=
letI _ : Semiring S := hf.semiring f zero one add mul nsmul npow natCast
letI _ : PartialOrder S := PartialOrder.lift f hf
{ __ := hf.isOrderedCancelAddMonoid f zero add (swap nsmul)
__ := domain_nontrivial f zero one
__ := hf.isOrderedRing f zero one add mul nsmul npow natCast
mul_lt_mul_of_pos_left a b c h hc := show f (c * a) < f (c * b) by
simpa only [mul, zero] using mul_lt_mul_of_pos_left ‹f a < f b› (by rwa [← zero])
mul_lt_mul_of_pos_right a b c h hc := show f (a * c) < f (b * c) by
simpa only [mul, zero] using mul_lt_mul_of_pos_right ‹f a < f b› (by rwa [← zero]) }