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 aCanonicallyLinearOrderedSemifield
ifα
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)
:
@[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.mk_div_mk
{α : Type u_1}
[Semifield α]
[LinearOrder α]
[IsStrictOrderedRing α]
{x y : α}
(hx : 0 ≤ x)
(hy : 0 ≤ y)
:
@[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 α]
:
Equations
- Nonneg.instNNRatCast = { nnratCast := fun (q : ℚ≥0) => ⟨↑q, ⋯⟩ }
@[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 α]
: