# 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
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
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_1 {ι : Type u_1} {Z : ιType u_2} [(i : ι) → ] :
ExistsAddOfLE ((i : ι) → Z i)
theorem Pi.instCanonicallyOrderedAddCommMonoidForall.proof_3 {ι : Type u_2} {Z : ιType u_1} [(i : ι) → ] :
∀ (x x_1 : (i : ι) → Z i) (x_2 : ι), x x_2 x x_2 + x_1 x_2
theorem Pi.instCanonicallyOrderedAddCommMonoidForall.proof_2 {ι : Type u_1} {Z : ιType u_2} [(i : ι) → ] :
∀ {a b : (i : ι) → Z i}, a b∃ (c : (i : ι) → Z i), b = a + c
instance Pi.instCanonicallyOrderedAddCommMonoidForall {ι : Type u_7} {Z : ιType u_8} [(i : ι) → ] :

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

Equations
instance Pi.instCanonicallyOrderedCommMonoidForall {ι : Type u_7} {Z : ιType u_8} [(i : ι) → ] :
CanonicallyOrderedCommMonoid ((i : ι) → Z i)

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

Equations
instance Pi.orderedAddCancelCommMonoid {I : Type u_2} {f : IType u_6} [(i : I) → ] :
OrderedCancelAddCommMonoid ((i : I) → f i)
Equations
theorem Pi.orderedAddCancelCommMonoid.proof_2 {I : Type u_1} {f : IType u_2} [(i : 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) → ] :
∀ (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 ((i : I) → f i)
Equations
• Pi.orderedCancelCommMonoid = let __spread.0 := Pi.commMonoid;
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_4 {I : Type u_1} {f : IType u_2} [(i : I) → OrderedAddCommGroup (f i)] (n : ) (x : (i : I) → f i) :
AddMonoid.nsmul (n + 1) x = + x
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_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
instance Pi.orderedAddCommGroup {I : Type u_2} {f : IType u_6} [(i : I) → OrderedAddCommGroup (f i)] :
OrderedAddCommGroup ((i : I) → f i)
Equations
theorem Pi.orderedAddCommGroup.proof_3 {I : Type u_1} {f : IType u_2} [(i : I) → OrderedAddCommGroup (f i)] (x : (i : I) → f i) :
= 0
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_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_7 {I : Type u_1} {f : IType u_2} [(i : I) → OrderedAddCommGroup (f i)] (n : ) (a : (i : I) → f i) :
theorem Pi.orderedAddCommGroup.proof_8 {I : Type u_1} {f : IType u_2} [(i : I) → OrderedAddCommGroup (f i)] (n : ) (a : (i : I) → f i) :
= -SubNegMonoid.zsmul (n.succ) a
theorem Pi.orderedAddCommGroup.proof_6 {I : Type u_1} {f : IType u_2} [(i : I) → OrderedAddCommGroup (f i)] (a : (i : I) → f i) :
= 0
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
instance Pi.orderedSemiring {I : Type u_2} {f : IType u_6} [(i : I) → OrderedSemiring (f i)] :
OrderedSemiring ((i : I) → f i)
Equations
instance Pi.orderedCommSemiring {I : Type u_2} {f : IType u_6} [(i : I) → OrderedCommSemiring (f i)] :
OrderedCommSemiring ((i : I) → f i)
Equations
instance Pi.orderedRing {I : Type u_2} {f : IType u_6} [(i : I) → OrderedRing (f i)] :
OrderedRing ((i : I) → f i)
Equations
instance Pi.orderedCommRing {I : Type u_2} {f : IType u_6} [(i : I) → OrderedCommRing (f i)] :
OrderedCommRing ((i : I) → f i)
Equations
theorem Function.const_nonneg_of_nonneg {α : Type u_3} (β : Type u_4) [Zero α] [] {a : α} (ha : 0 a) :
0
theorem Function.one_le_const_of_one_le {α : Type u_3} (β : Type u_4) [One α] [] {a : α} (ha : 1 a) :
1
theorem Function.const_nonpos_of_nonpos {α : Type u_3} (β : Type u_4) [Zero α] [] {a : α} (ha : a 0) :
0
theorem Function.const_le_one_of_le_one {α : Type u_3} (β : Type u_4) [One α] [] {a : α} (ha : a 1) :
1
@[simp]
theorem Function.const_nonneg {α : Type u_3} {β : Type u_4} [Zero α] [] {a : α} [] :
0 0 a
@[simp]
theorem Function.one_le_const {α : Type u_3} {β : Type u_4} [One α] [] {a : α} [] :
1 1 a
@[simp]
theorem Function.const_pos {α : Type u_3} {β : Type u_4} [Zero α] [] {a : α} [] :
0 < 0 < a
@[simp]
theorem Function.one_lt_const {α : Type u_3} {β : Type u_4} [One α] [] {a : α} [] :
1 < 1 < a
@[simp]
theorem Function.const_nonpos {α : Type u_3} {β : Type u_4} [Zero α] [] {a : α} [] :
0 a 0
@[simp]
theorem Function.const_le_one {α : Type u_3} {β : Type u_4} [One α] [] {a : α} [] :
1 a 1
@[simp]
theorem Function.const_neg' {α : Type u_3} {β : Type u_4} [Zero α] [] {a : α} [] :
< 0 a < 0
@[simp]
theorem Function.const_lt_one {α : Type u_3} {β : Type u_4} [One α] [] {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) :
0
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) :
1
theorem Function.extend_nonpos {α : Type u_3} {β : Type u_4} {γ : Type u_5} [Zero γ] [LE γ] {f : αβ} {g : αγ} {e : βγ} (hg : g 0) (he : e 0) :
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) :
1