Semifield structure on the type of nonnegative elements #
This file defines instances and prove some properties about the nonnegative elements
Nonneg α of an arbitrary type α.
This is used to derive algebraic structures on ℝ≥0 and ℚ≥0 automatically.
theorem NNRat.cast_nonneg {α : Type u_1} [DivisionSemiring α] [LinearOrder α] [IsStrictOrderedRing α] (q : ℚ≥0) :
theorem nnqsmul_nonneg {α : Type u_1} [DivisionSemiring α] [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_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_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.unitsEquivPos_apply_coe (R : Type u_2) [DivisionSemiring R] [PartialOrder R] [IsStrictOrderedRing R] [PosMulReflectLT R] (r : (Nonneg R)ˣ) :
@[instance_reducible]
@[simp]
theorem Nonneg.coe_inv {α : Type u_1} [DivisionSemiring α] [LinearOrder α] [IsStrictOrderedRing α] (a : Nonneg α) :
@[simp]
theorem Nonneg.inv_mk {α : Type u_1} [DivisionSemiring α] [LinearOrder α] [IsStrictOrderedRing α] {x : α} (hx : 0 ≤ x) :
@[instance_reducible]
@[simp]
theorem Nonneg.coe_div {α : Type u_1} [DivisionSemiring α] [LinearOrder α] [IsStrictOrderedRing α] (a b : Nonneg α) :
@[simp]
theorem Nonneg.mk_div_mk {α : Type u_1} [DivisionSemiring α] [LinearOrder α] [IsStrictOrderedRing α] {x y : α} (hx : 0 ≤ x) (hy : 0 ≤ y) :
@[instance_reducible]
@[simp]
theorem Nonneg.coe_zpow {α : Type u_1} [DivisionSemiring α] [LinearOrder α] [IsStrictOrderedRing α] (a : Nonneg α) (n : ℤ) :
@[simp]
theorem Nonneg.mk_zpow {α : Type u_1} [DivisionSemiring α] [LinearOrder α] [IsStrictOrderedRing α] {x : α} (hx : 0 ≤ x) (n : ℤ) :
@[instance_reducible]
instance Nonneg.instNNRatCast {α : Type u_1} [DivisionSemiring α] [LinearOrder α] [IsStrictOrderedRing α] :
@[instance_reducible]
instance Nonneg.instNNRatSMul {α : Type u_1} [DivisionSemiring α] [LinearOrder α] [IsStrictOrderedRing α] :
@[simp]
theorem Nonneg.coe_nnratCast {α : Type u_1} [DivisionSemiring α] [LinearOrder α] [IsStrictOrderedRing α] (q : ℚ≥0) :
@[simp]
theorem Nonneg.mk_nnratCast {α : Type u_1} [DivisionSemiring α] [LinearOrder α] [IsStrictOrderedRing α] (q : ℚ≥0) :
@[simp]
theorem Nonneg.coe_nnqsmul {α : Type u_1} [DivisionSemiring α] [LinearOrder α] [IsStrictOrderedRing α] (q : ℚ≥0) (a : Nonneg α) :
@[simp]
theorem Nonneg.mk_nnqsmul {α : Type u_1} [DivisionSemiring α] [LinearOrder α] [IsStrictOrderedRing α] (q : ℚ≥0) (a : α) (ha : 0 ≤ a) :
@[instance_reducible]
instance Nonneg.divisionSemiring {α : Type u_1} [DivisionSemiring α] [LinearOrder α] [IsStrictOrderedRing α] :
Equations
- Nonneg.divisionSemiring = Function.Injective.divisionSemiring (fun (a : { x : α // 0 ≤ x }) => ↑a) ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance Nonneg.linearOrderedCommGroupWithZero {α : Type u_1} [Field α] [LinearOrder α] [IsStrictOrderedRing α] :
Equations
- One or more equations did not get rendered due to their size.