Documentation

Mathlib.Algebra.Order.Pi

Pi instances for ordered groups and monoids #

This file defines instances for ordered group, monoid, and related structures on Pi types.

theorem Pi.orderedAddCommMonoid.proof_1 {ι : Type u_1} {Z : ιType u_2} [(i : ι) → OrderedAddCommMonoid (Z i)] :
∀ (x x_1 : (i : ι) → Z i), x x_1∀ (x_2 : (i : ι) → Z i) (i : ι), x_2 i + x i x_2 i + x_1 i
instance Pi.orderedAddCommMonoid {ι : Type u_7} {Z : ιType u_8} [(i : ι) → OrderedAddCommMonoid (Z i)] :
OrderedAddCommMonoid ((i : ι) → Z i)

The product of a family of ordered additive commutative monoids is an ordered additive commutative monoid.

Equations
  • Pi.orderedAddCommMonoid = let __spread.0 := Pi.partialOrder; let __spread.1 := Pi.addCommMonoid; OrderedAddCommMonoid.mk
instance Pi.orderedCommMonoid {ι : Type u_7} {Z : ιType u_8} [(i : ι) → OrderedCommMonoid (Z i)] :
OrderedCommMonoid ((i : ι) → Z i)

The product of a family of ordered commutative monoids is an ordered commutative monoid.

Equations
  • Pi.orderedCommMonoid = let __spread.0 := Pi.partialOrder; let __spread.1 := Pi.commMonoid; OrderedCommMonoid.mk
instance Pi.existsAddOfLe {ι : Type u_7} {α : ιType u_8} [(i : ι) → LE (α i)] [(i : ι) → Add (α i)] [∀ (i : ι), ExistsAddOfLE (α i)] :
ExistsAddOfLE ((i : ι) → α i)
Equations
  • =
instance Pi.existsMulOfLe {ι : Type u_7} {α : ιType u_8} [(i : ι) → LE (α i)] [(i : ι) → Mul (α i)] [∀ (i : ι), ExistsMulOfLE (α i)] :
ExistsMulOfLE ((i : ι) → α i)
Equations
  • =
theorem Pi.instCanonicallyOrderedAddCommMonoidForAll.proof_3 {ι : Type u_2} {Z : ιType u_1} [(i : ι) → CanonicallyOrderedAddCommMonoid (Z i)] :
∀ (x x_1 : (i : ι) → Z i) (x_2 : ι), x x_2 x x_2 + x_1 x_2
instance Pi.instCanonicallyOrderedAddCommMonoidForAll {ι : Type u_7} {Z : ιType u_8} [(i : ι) → CanonicallyOrderedAddCommMonoid (Z i)] :

The product of a family of canonically ordered additive monoids is a canonically ordered additive monoid.

Equations
  • Pi.instCanonicallyOrderedAddCommMonoidForAll = let __spread.0 := Pi.instOrderBot; let __spread.1 := Pi.orderedAddCommMonoid; let __spread.2 := ; CanonicallyOrderedAddCommMonoid.mk
theorem Pi.instCanonicallyOrderedAddCommMonoidForAll.proof_1 {ι : Type u_1} {Z : ιType u_2} [(i : ι) → CanonicallyOrderedAddCommMonoid (Z i)] :
ExistsAddOfLE ((i : ι) → Z i)
theorem Pi.instCanonicallyOrderedAddCommMonoidForAll.proof_2 {ι : Type u_1} {Z : ιType u_2} [(i : ι) → CanonicallyOrderedAddCommMonoid (Z i)] :
∀ {a b : (i : ι) → Z i}, a b∃ (c : (i : ι) → Z i), b = a + c
instance Pi.instCanonicallyOrderedCommMonoidForAll {ι : Type u_7} {Z : ιType u_8} [(i : ι) → CanonicallyOrderedCommMonoid (Z i)] :
CanonicallyOrderedCommMonoid ((i : ι) → Z i)

The product of a family of canonically ordered monoids is a canonically ordered monoid.

Equations
  • Pi.instCanonicallyOrderedCommMonoidForAll = let __spread.0 := Pi.instOrderBot; let __spread.1 := Pi.orderedCommMonoid; let __spread.2 := ; CanonicallyOrderedCommMonoid.mk
instance Pi.orderedAddCancelCommMonoid {I : Type u_2} {f : IType u_6} [(i : I) → OrderedCancelAddCommMonoid (f i)] :
OrderedCancelAddCommMonoid ((i : I) → f i)
Equations
theorem Pi.orderedAddCancelCommMonoid.proof_2 {I : Type u_1} {f : IType u_2} [(i : I) → OrderedCancelAddCommMonoid (f i)] :
∀ (x x_1 x_2 : (i : I) → f i), x + x_1 x + x_2∀ (i : I), x_1 i x_2 i
theorem Pi.orderedAddCancelCommMonoid.proof_1 {I : Type u_1} {f : IType u_2} [(i : I) → OrderedCancelAddCommMonoid (f i)] :
∀ (x x_1 : (i : I) → f i), x x_1∀ (h : (i : I) → f i) (i : I), h i + x i h i + x_1 i
instance Pi.orderedCancelCommMonoid {I : Type u_2} {f : IType u_6} [(i : I) → OrderedCancelCommMonoid (f i)] :
OrderedCancelCommMonoid ((i : I) → f i)
Equations
theorem Pi.orderedAddCommGroup.proof_2 {I : Type u_1} {f : IType u_2} [(i : I) → OrderedAddCommGroup (f i)] (a : (i : I) → f i) :
a + 0 = a
theorem Pi.orderedAddCommGroup.proof_4 {I : Type u_1} {f : IType u_2} [(i : I) → OrderedAddCommGroup (f i)] (n : ) (x : (i : I) → f i) :
theorem Pi.orderedAddCommGroup.proof_10 {I : Type u_1} {f : IType u_2} [(i : I) → OrderedAddCommGroup (f i)] (a : (i : I) → f i) (b : (i : I) → f i) :
a + b = b + a
theorem Pi.orderedAddCommGroup.proof_9 {I : Type u_1} {f : IType u_2} [(i : I) → OrderedAddCommGroup (f i)] (a : (i : I) → f i) :
-a + a = 0
theorem Pi.orderedAddCommGroup.proof_8 {I : Type u_1} {f : IType u_2} [(i : I) → OrderedAddCommGroup (f i)] (n : ) (a : (i : I) → f i) :
theorem Pi.orderedAddCommGroup.proof_5 {I : Type u_1} {f : IType u_2} [(i : I) → OrderedAddCommGroup (f i)] (a : (i : I) → f i) (b : (i : I) → f i) :
a - b = a + -b
theorem Pi.orderedAddCommGroup.proof_11 {I : Type u_1} {f : IType u_2} [(i : I) → OrderedAddCommGroup (f i)] (a : (i : I) → f i) (b : (i : I) → f i) :
a b∀ (c : (i : I) → f i), c + a c + b
theorem Pi.orderedAddCommGroup.proof_3 {I : Type u_1} {f : IType u_2} [(i : I) → OrderedAddCommGroup (f i)] (x : (i : I) → f i) :
theorem Pi.orderedAddCommGroup.proof_6 {I : Type u_1} {f : IType u_2} [(i : I) → OrderedAddCommGroup (f i)] (a : (i : I) → f i) :
instance Pi.orderedAddCommGroup {I : Type u_2} {f : IType u_6} [(i : I) → OrderedAddCommGroup (f i)] :
OrderedAddCommGroup ((i : I) → f i)
Equations
  • Pi.orderedAddCommGroup = let __spread.0 := Pi.addCommGroup; let __spread.1 := Pi.orderedAddCommMonoid; OrderedAddCommGroup.mk
theorem Pi.orderedAddCommGroup.proof_7 {I : Type u_1} {f : IType u_2} [(i : I) → OrderedAddCommGroup (f i)] (n : ) (a : (i : I) → f i) :
theorem Pi.orderedAddCommGroup.proof_1 {I : Type u_1} {f : IType u_2} [(i : I) → OrderedAddCommGroup (f i)] (a : (i : I) → f i) :
0 + a = a
instance Pi.orderedCommGroup {I : Type u_2} {f : IType u_6} [(i : I) → OrderedCommGroup (f i)] :
OrderedCommGroup ((i : I) → f i)
Equations
  • Pi.orderedCommGroup = let __spread.0 := Pi.commGroup; let __spread.1 := Pi.orderedCommMonoid; OrderedCommGroup.mk
instance Pi.orderedSemiring {I : Type u_2} {f : IType u_6} [(i : I) → OrderedSemiring (f i)] :
OrderedSemiring ((i : I) → f i)
Equations
  • Pi.orderedSemiring = let __spread.0 := Pi.semiring; let __spread.1 := Pi.partialOrder; OrderedSemiring.mk
instance Pi.orderedCommSemiring {I : Type u_2} {f : IType u_6} [(i : I) → OrderedCommSemiring (f i)] :
OrderedCommSemiring ((i : I) → f i)
Equations
  • Pi.orderedCommSemiring = let __spread.0 := Pi.commSemiring; let __spread.1 := Pi.orderedSemiring; OrderedCommSemiring.mk
instance Pi.orderedRing {I : Type u_2} {f : IType u_6} [(i : I) → OrderedRing (f i)] :
OrderedRing ((i : I) → f i)
Equations
  • Pi.orderedRing = let __spread.0 := Pi.ring; let __spread.1 := Pi.orderedSemiring; OrderedRing.mk
instance Pi.orderedCommRing {I : Type u_2} {f : IType u_6} [(i : I) → OrderedCommRing (f i)] :
OrderedCommRing ((i : I) → f i)
Equations
  • Pi.orderedCommRing = let __spread.0 := Pi.commRing; let __spread.1 := Pi.orderedRing; OrderedCommRing.mk
theorem Function.const_nonneg_of_nonneg {α : Type u_3} (β : Type u_4) [Zero α] [Preorder α] {a : α} (ha : 0 a) :
theorem Function.one_le_const_of_one_le {α : Type u_3} (β : Type u_4) [One α] [Preorder α] {a : α} (ha : 1 a) :
theorem Function.const_nonpos_of_nonpos {α : Type u_3} (β : Type u_4) [Zero α] [Preorder α] {a : α} (ha : a 0) :
theorem Function.const_le_one_of_le_one {α : Type u_3} (β : Type u_4) [One α] [Preorder α] {a : α} (ha : a 1) :
@[simp]
theorem Function.const_nonneg {α : Type u_3} {β : Type u_4} [Zero α] [Preorder α] {a : α} [Nonempty β] :
@[simp]
theorem Function.one_le_const {α : Type u_3} {β : Type u_4} [One α] [Preorder α] {a : α} [Nonempty β] :
@[simp]
theorem Function.const_pos {α : Type u_3} {β : Type u_4} [Zero α] [Preorder α] {a : α} [Nonempty β] :
0 < Function.const β a 0 < a
@[simp]
theorem Function.one_lt_const {α : Type u_3} {β : Type u_4} [One α] [Preorder α] {a : α} [Nonempty β] :
1 < Function.const β a 1 < a
@[simp]
theorem Function.const_nonpos {α : Type u_3} {β : Type u_4} [Zero α] [Preorder α] {a : α} [Nonempty β] :
@[simp]
theorem Function.const_le_one {α : Type u_3} {β : Type u_4} [One α] [Preorder α] {a : α} [Nonempty β] :
@[simp]
theorem Function.const_neg' {α : Type u_3} {β : Type u_4} [Zero α] [Preorder α] {a : α} [Nonempty β] :
Function.const β a < 0 a < 0
@[simp]
theorem Function.const_lt_one {α : Type u_3} {β : Type u_4} [One α] [Preorder α] {a : α} [Nonempty β] :
Function.const β a < 1 a < 1
theorem Function.extend_nonneg {α : Type u_3} {β : Type u_4} {γ : Type u_5} [Zero γ] [LE γ] {f : αβ} {g : αγ} {e : βγ} (hg : 0 g) (he : 0 e) :
theorem Function.one_le_extend {α : Type u_3} {β : Type u_4} {γ : Type u_5} [One γ] [LE γ] {f : αβ} {g : αγ} {e : βγ} (hg : 1 g) (he : 1 e) :
theorem Function.extend_nonpos {α : Type u_3} {β : Type u_4} {γ : Type u_5} [Zero γ] [LE γ] {f : αβ} {g : αγ} {e : βγ} (hg : g 0) (he : e 0) :
theorem Function.extend_le_one {α : Type u_3} {β : Type u_4} {γ : Type u_5} [One γ] [LE γ] {f : αβ} {g : αγ} {e : βγ} (hg : g 1) (he : e 1) :