Semifield structure on the type of nonnegative elements #
This file defines instances and prove some properties about the nonnegative elements
{x : α // 0 ≤ x} of an arbitrary type α.
This is used to derive algebraic structures on ℝ≥0 and ℚ≥0 automatically.
Main declarations #
{x : α // 0 ≤ x}is aCanonicallyLinearOrderedSemifieldifαis aLinearOrderedField.
theorem
NNRat.cast_nonneg
{α : Type u_1}
[Semifield α]
[LinearOrder α]
[IsStrictOrderedRing α]
(q : ℚ≥0)
:
theorem
nnqsmul_nonneg
{α : Type u_1}
[Semifield α]
[LinearOrder α]
[IsStrictOrderedRing α]
{a : α}
(q : ℚ≥0)
(ha : 0 ≤ a)
:
def
Nonneg.unitsEquivPos
(R : Type u_2)
[DivisionSemiring R]
[PartialOrder R]
[IsStrictOrderedRing R]
[PosMulReflectLT R]
:
In an ordered field, the units of the nonnegative elements are the positive elements.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
Nonneg.val_inv_unitsEquivPos_symm_apply_coe
(R : Type u_2)
[DivisionSemiring R]
[PartialOrder R]
[IsStrictOrderedRing R]
[PosMulReflectLT R]
(r : { r : R // 0 < r })
:
@[simp]
theorem
Nonneg.val_unitsEquivPos_symm_apply_coe
(R : Type u_2)
[DivisionSemiring R]
[PartialOrder R]
[IsStrictOrderedRing R]
[PosMulReflectLT R]
(r : { r : R // 0 < r })
:
@[simp]
theorem
Nonneg.unitsEquivPos_apply_coe
(R : Type u_2)
[DivisionSemiring R]
[PartialOrder R]
[IsStrictOrderedRing R]
[PosMulReflectLT R]
(r : { r : R // 0 ≤ r }ˣ)
:
@[simp]
theorem
Nonneg.coe_inv
{α : Type u_1}
[Semifield α]
[LinearOrder α]
[IsStrictOrderedRing α]
(a : { x : α // 0 ≤ x })
:
@[simp]
theorem
Nonneg.inv_mk
{α : Type u_1}
[Semifield α]
[LinearOrder α]
[IsStrictOrderedRing α]
{x : α}
(hx : 0 ≤ x)
:
@[simp]
theorem
Nonneg.coe_div
{α : Type u_1}
[Semifield α]
[LinearOrder α]
[IsStrictOrderedRing α]
(a b : { x : α // 0 ≤ x })
:
@[simp]
theorem
Nonneg.coe_zpow
{α : Type u_1}
[Semifield α]
[LinearOrder α]
[IsStrictOrderedRing α]
(a : { x : α // 0 ≤ x })
(n : ℤ)
:
@[simp]
theorem
Nonneg.mk_zpow
{α : Type u_1}
[Semifield α]
[LinearOrder α]
[IsStrictOrderedRing α]
{x : α}
(hx : 0 ≤ x)
(n : ℤ)
:
instance
Nonneg.instNNRatCast
{α : Type u_1}
[Semifield α]
[LinearOrder α]
[IsStrictOrderedRing α]
:
@[simp]
theorem
Nonneg.coe_nnratCast
{α : Type u_1}
[Semifield α]
[LinearOrder α]
[IsStrictOrderedRing α]
(q : ℚ≥0)
:
@[simp]
theorem
Nonneg.mk_nnratCast
{α : Type u_1}
[Semifield α]
[LinearOrder α]
[IsStrictOrderedRing α]
(q : ℚ≥0)
:
@[simp]
theorem
Nonneg.coe_nnqsmul
{α : Type u_1}
[Semifield α]
[LinearOrder α]
[IsStrictOrderedRing α]
(q : ℚ≥0)
(a : { x : α // 0 ≤ x })
:
@[simp]
theorem
Nonneg.mk_nnqsmul
{α : Type u_1}
[Semifield α]
[LinearOrder α]
[IsStrictOrderedRing α]
(q : ℚ≥0)
(a : α)
(ha : 0 ≤ a)
:
Equations
- One or more equations did not get rendered due to their size.
instance
Nonneg.linearOrderedCommGroupWithZero
{α : Type u_1}
[Field α]
[LinearOrder α]
[IsStrictOrderedRing α]
: