An AddEqTopClass is one where the top element is nonzero, and is not the sum of two
non-top elements. Equivalently, the non-top elements are an additive submonoid.
Instances
A MulEqTopClass is one where the top element is not 1, and is not the product of two
non-top elements. Equivalently, the non-top elements are a submonoid.
Instances
theorem exists_of_prod_eq_top {M : Type u_1} {α : Type u_2} [CommMonoid M] [Top M] [MulEqTopClass M] {s : Finset α} {f : α → M} (h : ∏ x ∈ s, f x = ⊤) :
theorem exists_of_sum_eq_top {M : Type u_1} {α : Type u_2} [AddCommMonoid M] [Top M] [AddEqTopClass M] {s : Finset α} {f : α → M} (h : ∑ x ∈ s, f x = ⊤) :
The set of non-top elements in a MulEqTopClass is a submonoid.
Instances For
Instances For
instance instPosMulTopClassOfMulTopClass {M : Type u_1} [Zero M] [Top M] [Mul M] [LT M] [MulTopClass M] :
def Subsemiring.neTop (α : Type u_3) [DecidableEq α] [Semiring α] [PartialOrder α] [CanonicallyOrderedAdd α] [NoZeroDivisors α] [OrderTop α] [MulEqTopClass α] [AddEqTopClass α] :
The set of non-top elements in a ring with MulEqTopClass, AddEqTopClass is a subring.
Equations
Instances For
@[simp]
theorem Subsemiring.coe_neTop (α : Type u_3) [DecidableEq α] [Semiring α] [PartialOrder α] [CanonicallyOrderedAdd α] [NoZeroDivisors α] [OrderTop α] [MulEqTopClass α] [AddEqTopClass α] :
instance instAddEqTopClassOfNontrivial {M : Type u_3} [LinearOrderedAddCommMonoidWithTop M] [Nontrivial M] :
@[instance_reducible]
instance instCommMonoidWithZeroSubtypeMemSubmonoidNeTopOfZeroNeTopClass {M : Type u_3} [CommMonoidWithZero M] [Preorder M] [OrderTop M] [MulEqTopClass M] [ZeroNeTopClass M] :
Equations
- instCommMonoidWithZeroSubtypeMemSubmonoidNeTopOfZeroNeTopClass = { toCommMonoid := (Submonoid.neTop M).toCommMonoid, zero := ⟨0, ⋯⟩, zero_mul := ⋯, mul_zero := ⋯ }
theorem isRegular_of_ne_top {M : Type u_3} [CommMonoid M] [PartialOrder M] [OrderTop M] [MulEqTopClass M] [MulTopClass M] {x : M} [IsCancelMul ↥(Submonoid.neTop M)] (hx : x ≠ ⊤) :
theorem isAddRegular_of_ne_top {M : Type u_3} [AddCommMonoid M] [PartialOrder M] [OrderTop M] [AddEqTopClass M] [AddTopClass M] {x : M} [IsCancelAdd ↥(AddSubmonoid.neTop M)] (hx : x ≠ ⊤) :
theorem mul_le_mul_iff_left_of_ne_top' {M : Type u_3} [CommMonoid M] [PartialOrder M] [OrderTop M] [MulEqTopClass M] [MulTopClass M] {x y z : M} [IsOrderedCancelMonoid ↥(Submonoid.neTop M)] (hx : x ≠ ⊤) :
theorem add_le_add_iff_left_of_ne_top' {M : Type u_3} [AddCommMonoid M] [PartialOrder M] [OrderTop M] [AddEqTopClass M] [AddTopClass M] {x y z : M} [IsOrderedCancelAddMonoid ↥(AddSubmonoid.neTop M)] (hx : x ≠ ⊤) :
theorem mul_le_mul_iff_right_of_ne_top' {M : Type u_3} [CommMonoid M] [PartialOrder M] [OrderTop M] [MulEqTopClass M] [MulTopClass M] {x y z : M} [IsOrderedCancelMonoid ↥(Submonoid.neTop M)] (hx : x ≠ ⊤) :
theorem add_le_add_iff_right_of_ne_top' {M : Type u_3} [AddCommMonoid M] [PartialOrder M] [OrderTop M] [AddEqTopClass M] [AddTopClass M] {x y z : M} [IsOrderedCancelAddMonoid ↥(AddSubmonoid.neTop M)] (hx : x ≠ ⊤) :
theorem mul_lt_mul_iff_right_of_ne_top' {M : Type u_3} [CommMonoid M] [PartialOrder M] [OrderTop M] [MulEqTopClass M] [MulTopClass M] {x y z : M} [IsOrderedCancelMonoid ↥(Submonoid.neTop M)] (hx : x ≠ ⊤) :
theorem add_lt_add_iff_right_of_ne_top' {M : Type u_3} [AddCommMonoid M] [PartialOrder M] [OrderTop M] [AddEqTopClass M] [AddTopClass M] {x y z : M} [IsOrderedCancelAddMonoid ↥(AddSubmonoid.neTop M)] (hx : x ≠ ⊤) :
theorem mul_lt_mul_iff_left_of_ne_top' {M : Type u_3} [CommMonoid M] [PartialOrder M] [OrderTop M] [MulEqTopClass M] [MulTopClass M] {x y z : M} [IsOrderedCancelMonoid ↥(Submonoid.neTop M)] (hx : x ≠ ⊤) :
theorem add_lt_add_iff_left_of_ne_top' {M : Type u_3} [AddCommMonoid M] [PartialOrder M] [OrderTop M] [AddEqTopClass M] [AddTopClass M] {x y z : M} [IsOrderedCancelAddMonoid ↥(AddSubmonoid.neTop M)] (hx : x ≠ ⊤) :
theorem mul_right_strictMono_of_pos_of_ne_top {M : Type u_4} [CommMonoidWithZero M] [PartialOrder M] [OrderTop M] [MulEqTopClass M] [ZeroNeTopClass M] [PosMulTopClass M] [PosMulStrictMono ↥(Submonoid.neTop M)] {a : M} (h₀ : 0 < a) (hinf : a ≠ ⊤) :
StrictMono fun (x : M) => a * x
theorem mul_left_strictMono_of_pos_of_ne_top {M : Type u_4} [CommMonoidWithZero M] [PartialOrder M] [OrderTop M] [MulEqTopClass M] [ZeroNeTopClass M] [PosMulTopClass M] [PosMulStrictMono ↥(Submonoid.neTop M)] {a : M} (h₀ : 0 < a) (hinf : a ≠ ⊤) :
StrictMono fun (x : M) => x * a
@[simp]
theorem mul_lt_mul_iff_left₀_of_ne_top {M : Type u_4} [CommMonoidWithZero M] [LinearOrder M] [OrderTop M] [MulEqTopClass M] [ZeroNeTopClass M] [PosMulTopClass M] [PosMulStrictMono ↥(Submonoid.neTop M)] {a b c : M} (a0 : 0 < a) (ha : a ≠ ⊤) :
@[simp]
theorem mul_lt_mul_iff_right₀_of_ne_top {M : Type u_4} [CommMonoidWithZero M] [LinearOrder M] [OrderTop M] [MulEqTopClass M] [ZeroNeTopClass M] [PosMulTopClass M] [PosMulStrictMono ↥(Submonoid.neTop M)] {a b c : M} (a0 : 0 < a) (ha : a ≠ ⊤) :
instance instMulEqTopClassWithTopOfPreorder {M : Type u_1} [DecidableEq M] [CommMonoidWithZero M] [Preorder M] :
MulEqTopClass (WithTop M)
instance instAddEqTopClassWithTopOfPreorder {M : Type u_1} [AddCommMonoid M] [Preorder M] :
AddEqTopClass (WithTop M)
The submonoid of non-top elements in WithTop M is isomorphic to M.
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance instIsCancelAddSubtypeWithTopMemAddSubmonoidNeTop {M : Type u_1} [AddCommMonoid M] [IsCancelAdd M] [Preorder M] :
IsCancelAdd ↥(AddSubmonoid.neTop (WithTop M))
instance instIsOrderedCancelAddMonoidSubtypeWithTopMemAddSubmonoidNeTop {M : Type u_1} [AddCommMonoid M] [Preorder M] [IsOrderedCancelAddMonoid M] :
instance instMulEqTopClassWithTop {R : Type u_3} [DecidableEq R] [Semiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [NoZeroDivisors R] [Nontrivial R] :
MulEqTopClass (WithTop R)
def orderRingIsoNeTop (R : Type u_4) [DecidableEq R] [Semiring R] [PartialOrder R] [CanonicallyOrderedAdd R] [NoZeroDivisors R] [Nontrivial R] :
The subring of non-top elements in WithTop R is isomorphic to R.
Equations
- One or more equations did not get rendered due to their size.