Structures involving * and 0 on WithTop and WithBot #
The main results of this section are WithTop.instOrderedCommSemiring and
WithBot.instOrderedCommSemiring.
@[instance_reducible]
instance WithTop.instMulZeroClass {α : Type u_1} [DecidableEq α] [MulZeroClass α] :
MulZeroClass (WithTop α)
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance WithBot.instMulZeroClass {α : Type u_1} [DecidableEq α] [MulZeroClass α] :
MulZeroClass (WithBot α)
Equations
- One or more equations did not get rendered due to their size.
@[simp]
@[simp]
@[simp]
theorem WithTop.mul_top {α : Type u_1} [DecidableEq α] [MulZeroClass α] {a : WithTop α} (h : a ≠ 0) :
@[simp]
theorem WithBot.mul_bot {α : Type u_1} [DecidableEq α] [MulZeroClass α] {a : WithBot α} (h : a ≠ 0) :
@[simp]
theorem WithTop.top_mul {α : Type u_1} [DecidableEq α] [MulZeroClass α] {b : WithTop α} (hb : b ≠ 0) :
@[simp]
theorem WithBot.bot_mul {α : Type u_1} [DecidableEq α] [MulZeroClass α] {b : WithBot α} (hb : b ≠ 0) :
theorem WithTop.mul_coe_eq_bind {α : Type u_1} [DecidableEq α] [MulZeroClass α] {b : α} (hb : b ≠ 0) (a : WithTop α) :
theorem WithBot.mul_coe_eq_bind {α : Type u_1} [DecidableEq α] [MulZeroClass α] {b : α} (hb : b ≠ 0) (a : WithBot α) :
theorem WithTop.coe_mul_eq_bind {α : Type u_1} [DecidableEq α] [MulZeroClass α] {a : α} (ha : a ≠ 0) (b : WithTop α) :
theorem WithBot.coe_mul_eq_bind {α : Type u_1} [DecidableEq α] [MulZeroClass α] {a : α} (ha : a ≠ 0) (b : WithBot α) :
@[simp]
@[simp]
theorem WithTop.mul_ne_top {α : Type u_1} [DecidableEq α] [MulZeroClass α] {a b : WithTop α} (ha : a ≠ ⊤) (hb : b ≠ ⊤) :
theorem WithBot.mul_ne_bot {α : Type u_1} [DecidableEq α] [MulZeroClass α] {a b : WithBot α} (ha : a ≠ ⊥) (hb : b ≠ ⊥) :
theorem WithTop.mul_lt_top {α : Type u_1} [DecidableEq α] [MulZeroClass α] [LT α] {a b : WithTop α} (ha : a < ⊤) (hb : b < ⊤) :
theorem WithBot.bot_lt_mul {α : Type u_1} [DecidableEq α] [MulZeroClass α] [LT α] {a b : WithBot α} (ha : ⊥ < a) (hb : ⊥ < b) :
instance WithTop.instNoZeroDivisors {α : Type u_1} [DecidableEq α] [MulZeroClass α] [NoZeroDivisors α] :
instance WithBot.instNoZeroDivisors {α : Type u_1} [DecidableEq α] [MulZeroClass α] [NoZeroDivisors α] :
theorem WithTop.mul_right_strictMono {α : Type u_1} [DecidableEq α] [MulZeroClass α] {a : WithTop α} [Preorder α] [PosMulStrictMono α] (h₀ : 0 < a) (hinf : a ≠ ⊤) :
StrictMono fun (x : WithTop α) => a * x
theorem WithTop.mul_left_strictMono {α : Type u_1} [DecidableEq α] [MulZeroClass α] {a : WithTop α} [Preorder α] [MulPosStrictMono α] (h₀ : 0 < a) (hinf : a ≠ ⊤) :
StrictMono fun (x : WithTop α) => x * a
@[instance_reducible]
instance WithTop.instMulZeroOneClass {α : Type u_1} [DecidableEq α] [MulZeroOneClass α] [Nontrivial α] :
Nontrivial α is needed here as otherwise we have 1 * ⊤ = ⊤ but also 0 * ⊤ = 0.
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance WithBot.instMulZeroOneClass {α : Type u_1} [DecidableEq α] [MulZeroOneClass α] [Nontrivial α] :
Nontrivial α is needed here as otherwise we have 1 * ⊥ = ⊥ but also = 0 * ⊥ = 0.
Equations
- One or more equations did not get rendered due to their size.
def MonoidWithZeroHom.withTopMap {R : Type u_2} {S : Type u_3} [MulZeroOneClass R] [DecidableEq R] [Nontrivial R] [MulZeroOneClass S] [DecidableEq S] [Nontrivial S] (f : R →*₀ S) (hf : Function.Injective ⇑f) :
A version of WithTop.map for MonoidWithZeroHoms.
Equations
- f.withTopMap hf = { toFun := WithTop.map ⇑f, map_zero' := ⋯, map_one' := ⋯, map_mul' := ⋯ }
Instances For
def MonoidWithZeroHom.withBotMap {R : Type u_2} {S : Type u_3} [MulZeroOneClass R] [DecidableEq R] [Nontrivial R] [MulZeroOneClass S] [DecidableEq S] [Nontrivial S] (f : R →*₀ S) (hf : Function.Injective ⇑f) :
A version of WithBot.map for MonoidWithZeroHoms.
Equations
- f.withBotMap hf = { toFun := WithBot.map ⇑f, map_zero' := ⋯, map_one' := ⋯, map_mul' := ⋯ }
Instances For
@[simp]
theorem MonoidWithZeroHom.withTopMap_apply {R : Type u_2} {S : Type u_3} [MulZeroOneClass R] [DecidableEq R] [Nontrivial R] [MulZeroOneClass S] [DecidableEq S] [Nontrivial S] (f : R →*₀ S) (hf : Function.Injective ⇑f) :
@[simp]
theorem MonoidWithZeroHom.withBotMap_apply {R : Type u_2} {S : Type u_3} [MulZeroOneClass R] [DecidableEq R] [Nontrivial R] [MulZeroOneClass S] [DecidableEq S] [Nontrivial S] (f : R →*₀ S) (hf : Function.Injective ⇑f) :
@[instance_reducible]
instance WithTop.instSemigroupWithZero {α : Type u_1} [DecidableEq α] [SemigroupWithZero α] [NoZeroDivisors α] :
Equations
- WithTop.instSemigroupWithZero = { toMul := WithTop.instMulZeroClass.toMul, mul_assoc := ⋯, toZero := WithTop.instMulZeroClass.toZero, zero_mul := ⋯, mul_zero := ⋯ }
@[instance_reducible]
instance WithBot.instSemigroupWithZero {α : Type u_1} [DecidableEq α] [SemigroupWithZero α] [NoZeroDivisors α] :
Equations
- WithBot.instSemigroupWithZero = { toMul := WithBot.instMulZeroClass.toMul, mul_assoc := ⋯, toZero := WithBot.instMulZeroClass.toZero, zero_mul := ⋯, mul_zero := ⋯ }
@[instance_reducible]
instance WithTop.instMonoidWithZero {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] :
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance WithBot.instMonoidWithZero {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] :
Equations
- One or more equations did not get rendered due to their size.
@[simp]
theorem WithTop.coe_pow {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] (a : α) (n : ℕ) :
@[simp]
theorem WithBot.coe_pow {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] (a : α) (n : ℕ) :
@[simp]
theorem WithTop.top_pow {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] {n : ℕ} (hn : n ≠ 0) :
@[simp]
theorem WithBot.bot_pow {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] {n : ℕ} (hn : n ≠ 0) :
@[simp]
theorem WithTop.pow_eq_top_iff {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] {x : WithTop α} {n : ℕ} :
@[simp]
theorem WithBot.pow_eq_bot_iff {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] {x : WithBot α} {n : ℕ} :
theorem WithTop.pow_ne_top_iff {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] {x : WithTop α} {n : ℕ} :
theorem WithBot.pow_ne_bot_iff {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] {x : WithBot α} {n : ℕ} :
@[simp]
theorem WithTop.pow_lt_top_iff {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] {x : WithTop α} {n : ℕ} [Preorder α] :
@[simp]
theorem WithBot.bot_lt_pow_iff {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] {x : WithBot α} {n : ℕ} [Preorder α] :
theorem WithTop.eq_top_of_pow {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] {x : WithTop α} (n : ℕ) (hx : x ^ n = ⊤) :
theorem WithBot.eq_bot_of_pow {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] {x : WithBot α} (n : ℕ) (hx : x ^ n = ⊥) :
theorem WithTop.pow_ne_top {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] {x : WithTop α} {n : ℕ} (hx : x ≠ ⊤) :
theorem WithBot.pow_ne_bot {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] {x : WithBot α} {n : ℕ} (hx : x ≠ ⊥) :
theorem WithTop.pow_lt_top {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] {x : WithTop α} {n : ℕ} [Preorder α] (hx : x < ⊤) :
theorem WithBot.bot_lt_pow {α : Type u_1} [DecidableEq α] [MonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] {x : WithBot α} {n : ℕ} [Preorder α] (hx : ⊥ < x) :
@[instance_reducible]
instance WithTop.instCommMonoidWithZero {α : Type u_1} [DecidableEq α] [CommMonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] :
Equations
- WithTop.instCommMonoidWithZero = { toMonoid := WithTop.instMonoidWithZero.toMonoid, mul_comm := ⋯, toZero := WithTop.instMonoidWithZero.toZero, zero_mul := ⋯, mul_zero := ⋯ }
@[instance_reducible]
instance WithBot.instCommMonoidWithZero {α : Type u_1} [DecidableEq α] [CommMonoidWithZero α] [NoZeroDivisors α] [Nontrivial α] :
Equations
- WithBot.instCommMonoidWithZero = { toMonoid := WithBot.instMonoidWithZero.toMonoid, mul_comm := ⋯, toZero := WithBot.instMonoidWithZero.toZero, zero_mul := ⋯, mul_zero := ⋯ }
@[instance_reducible]
instance WithTop.instNonUnitalNonAssocSemiring {α : Type u_1} [DecidableEq α] [NonUnitalNonAssocSemiring α] [Subsingleton (AddUnits α)] :
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance WithBot.instNonUnitalNonAssocSemiring {α : Type u_1} [DecidableEq α] [NonUnitalNonAssocSemiring α] [Subsingleton (AddUnits α)] :
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance WithTop.instNonAssocSemiring {α : Type u_1} [DecidableEq α] [NonAssocSemiring α] [Subsingleton (AddUnits α)] [Nontrivial α] :
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance WithBot.instNonAssocSemiring {α : Type u_1} [DecidableEq α] [NonAssocSemiring α] [Subsingleton (AddUnits α)] [Nontrivial α] :
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance WithTop.instNonUnitalSemiring {α : Type u_1} [DecidableEq α] [NonUnitalSemiring α] [Subsingleton (AddUnits α)] [NoZeroDivisors α] :
Equations
- WithTop.instNonUnitalSemiring = { toNonUnitalNonAssocSemiring := WithTop.instNonUnitalNonAssocSemiring, mul_assoc := ⋯ }
@[instance_reducible]
instance WithBot.instNonUnitalSemiring {α : Type u_1} [DecidableEq α] [NonUnitalSemiring α] [Subsingleton (AddUnits α)] [NoZeroDivisors α] :
Equations
- WithBot.instNonUnitalSemiring = { toNonUnitalNonAssocSemiring := WithBot.instNonUnitalNonAssocSemiring, mul_assoc := ⋯ }
@[instance_reducible]
instance WithTop.instSemiring {α : Type u_1} [DecidableEq α] [Semiring α] [Subsingleton (AddUnits α)] [NoZeroDivisors α] [Nontrivial α] :
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance WithBot.instSemiring {α : Type u_1} [DecidableEq α] [Semiring α] [Subsingleton (AddUnits α)] [NoZeroDivisors α] [Nontrivial α] :
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
instance WithTop.instCommSemiring {α : Type u_1} [DecidableEq α] [CommSemiring α] [Subsingleton (AddUnits α)] [NoZeroDivisors α] [Nontrivial α] :
CommSemiring (WithTop α)
Equations
- WithTop.instCommSemiring = { toSemiring := WithTop.instSemiring, mul_comm := ⋯ }
@[instance_reducible]
instance WithBot.instCommSemiring {α : Type u_1} [DecidableEq α] [CommSemiring α] [Subsingleton (AddUnits α)] [NoZeroDivisors α] [Nontrivial α] :
CommSemiring (WithBot α)
Equations
- WithBot.instCommSemiring = { toSemiring := WithBot.instSemiring, mul_comm := ⋯ }
instance WithTop.instIsOrderedRing {α : Type u_1} [DecidableEq α] [CommSemiring α] [PartialOrder α] [CanonicallyOrderedAdd α] [NoZeroDivisors α] [Nontrivial α] :
IsOrderedRing (WithTop α)
def RingHom.withTopMap {R : Type u_2} {S : Type u_3} [NonAssocSemiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [DecidableEq R] [Nontrivial R] [NonAssocSemiring S] [PartialOrder S] [CanonicallyOrderedAdd S] [DecidableEq S] [Nontrivial S] (f : R →+* S) (hf : Function.Injective ⇑f) :
A version of WithTop.map for RingHoms.
Equations
- f.withTopMap hf = { toFun := (↑((↑f).withTopMap hf)).toFun, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
def RingHom.withBotMap {R : Type u_2} {S : Type u_3} [NonAssocSemiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [DecidableEq R] [Nontrivial R] [NonAssocSemiring S] [PartialOrder S] [CanonicallyOrderedAdd S] [DecidableEq S] [Nontrivial S] (f : R →+* S) (hf : Function.Injective ⇑f) :
A version of WithTop.map for RingHoms.
Equations
- f.withBotMap hf = { toFun := (↑((↑f).withBotMap hf)).toFun, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
@[simp]
theorem RingHom.withBotMap_apply {R : Type u_2} {S : Type u_3} [NonAssocSemiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [DecidableEq R] [Nontrivial R] [NonAssocSemiring S] [PartialOrder S] [CanonicallyOrderedAdd S] [DecidableEq S] [Nontrivial S] (f : R →+* S) (hf : Function.Injective ⇑f) :
@[simp]
theorem RingHom.withTopMap_apply {R : Type u_2} {S : Type u_3} [NonAssocSemiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [DecidableEq R] [Nontrivial R] [NonAssocSemiring S] [PartialOrder S] [CanonicallyOrderedAdd S] [DecidableEq S] [Nontrivial S] (f : R →+* S) (hf : Function.Injective ⇑f) :
theorem WithTop.mul_lt_mul {α : Type u_1} [DecidableEq α] [CommSemiring α] [PartialOrder α] [OrderBot α] [CanonicallyOrderedAdd α] [PosMulStrictMono α] {a₁ a₂ b₁ b₂ : WithTop α} (ha : a₁ < a₂) (hb : b₁ < b₂) :
theorem WithTop.pow_right_strictMono {α : Type u_1} [DecidableEq α] [CommSemiring α] [PartialOrder α] [OrderBot α] [CanonicallyOrderedAdd α] [PosMulStrictMono α] [NoZeroDivisors α] [Nontrivial α] {n : ℕ} :
n ≠ 0 → StrictMono fun (a : WithTop α) => a ^ n
theorem WithTop.pow_lt_pow_left {α : Type u_1} [DecidableEq α] [CommSemiring α] [PartialOrder α] [OrderBot α] [CanonicallyOrderedAdd α] [PosMulStrictMono α] [NoZeroDivisors α] [Nontrivial α] {a b : WithTop α} (hab : a < b) {n : ℕ} (hn : n ≠ 0) :
instance WithBot.instPosMulMono {α : Type u_1} [DecidableEq α] [MulZeroClass α] [Preorder α] [PosMulMono α] :
PosMulMono (WithBot α)
instance WithBot.instMulPosMono {α : Type u_1} [DecidableEq α] [MulZeroClass α] [Preorder α] [MulPosMono α] :
MulPosMono (WithBot α)
instance WithBot.instPosMulStrictMono {α : Type u_1} [DecidableEq α] [MulZeroClass α] [Preorder α] [PosMulStrictMono α] :
instance WithBot.instMulPosStrictMono {α : Type u_1} [DecidableEq α] [MulZeroClass α] [Preorder α] [MulPosStrictMono α] :
instance WithBot.instPosMulReflectLT {α : Type u_1} [DecidableEq α] [MulZeroClass α] [Preorder α] [PosMulReflectLT α] :
instance WithBot.instMulPosReflectLT {α : Type u_1} [DecidableEq α] [MulZeroClass α] [Preorder α] [MulPosReflectLT α] :
instance WithBot.instPosMulReflectLE {α : Type u_1} [DecidableEq α] [MulZeroClass α] [Preorder α] [PosMulReflectLE α] :
instance WithBot.instMulPosReflectLE {α : Type u_1} [DecidableEq α] [MulZeroClass α] [Preorder α] [MulPosReflectLE α] :
instance WithBot.instIsOrderedRing {α : Type u_1} [DecidableEq α] [CommSemiring α] [PartialOrder α] [IsOrderedRing α] [CanonicallyOrderedAdd α] [NoZeroDivisors α] [Nontrivial α] :
IsOrderedRing (WithBot α)