Pi instances for ordered groups and monoids #
This file defines instances for ordered group, monoid, and related structures on Pi types.
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 = OrderedAddCommMonoid.mk ⋯
theorem
Pi.orderedAddCommMonoid.proof_1
{ι : Type u_1}
{Z : ι → Type u_2}
[(i : ι) → OrderedAddCommMonoid (Z i)]
:
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 = 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)]
:
theorem
Pi.instCanonicallyOrderedAddCommMonoidForall.proof_2
{ι : Type u_2}
{Z : ι → Type u_1}
[(i : ι) → CanonicallyOrderedAddCommMonoid (Z i)]
:
instance
Pi.instCanonicallyOrderedAddCommMonoidForall
{ι : Type u_7}
{Z : ι → Type u_8}
[(i : ι) → CanonicallyOrderedAddCommMonoid (Z i)]
:
CanonicallyOrderedAddCommMonoid ((i : ι) → Z i)
The product of a family of canonically ordered additive monoids is a canonically ordered additive monoid.
Equations
- Pi.instCanonicallyOrderedAddCommMonoidForall = CanonicallyOrderedAddCommMonoid.mk ⋯ ⋯
theorem
Pi.instCanonicallyOrderedAddCommMonoidForall.proof_1
{ι : Type u_1}
{Z : ι → Type u_2}
[(i : ι) → CanonicallyOrderedAddCommMonoid (Z i)]
:
ExistsAddOfLE ((i : ι) → Z i)
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 = CanonicallyOrderedCommMonoid.mk ⋯ ⋯
instance
Pi.orderedAddCancelCommMonoid
{I : Type u_2}
{f : I → Type u_6}
[(i : I) → OrderedCancelAddCommMonoid (f i)]
:
OrderedCancelAddCommMonoid ((i : I) → f i)
Equations
- Pi.orderedAddCancelCommMonoid = OrderedCancelAddCommMonoid.mk ⋯
theorem
Pi.orderedAddCancelCommMonoid.proof_1
{I : Type u_1}
{f : I → Type u_2}
[(i : I) → OrderedCancelAddCommMonoid (f i)]
:
theorem
Pi.orderedAddCancelCommMonoid.proof_2
{I : Type u_1}
{f : I → Type u_2}
[(i : I) → OrderedCancelAddCommMonoid (f i)]
:
instance
Pi.orderedCancelCommMonoid
{I : Type u_2}
{f : I → Type u_6}
[(i : I) → OrderedCancelCommMonoid (f i)]
:
OrderedCancelCommMonoid ((i : I) → f i)
Equations
- Pi.orderedCancelCommMonoid = OrderedCancelCommMonoid.mk ⋯
theorem
Pi.orderedAddCommGroup.proof_10
{I : Type u_1}
{f : I → Type u_2}
[(i : I) → OrderedAddCommGroup (f i)]
(a : (i : I) → f i)
(b : (i : I) → f i)
:
theorem
Pi.orderedAddCommGroup.proof_6
{I : Type u_1}
{f : I → Type u_2}
[(i : I) → OrderedAddCommGroup (f i)]
(a : (i : I) → f i)
:
SubNegMonoid.zsmul 0 a = 0
theorem
Pi.orderedAddCommGroup.proof_2
{I : Type u_1}
{f : I → Type u_2}
[(i : I) → OrderedAddCommGroup (f i)]
(a : (i : I) → f i)
:
theorem
Pi.orderedAddCommGroup.proof_3
{I : Type u_1}
{f : I → Type u_2}
[(i : I) → OrderedAddCommGroup (f i)]
(x : (i : I) → f i)
:
AddMonoid.nsmul 0 x = 0
theorem
Pi.orderedAddCommGroup.proof_4
{I : Type u_1}
{f : I → Type u_2}
[(i : I) → OrderedAddCommGroup (f i)]
(n : ℕ)
(x : (i : I) → f i)
:
AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x
theorem
Pi.orderedAddCommGroup.proof_7
{I : Type u_1}
{f : I → Type u_2}
[(i : I) → OrderedAddCommGroup (f i)]
(n : ℕ)
(a : (i : I) → f i)
:
SubNegMonoid.zsmul (Int.ofNat n.succ) a = SubNegMonoid.zsmul (Int.ofNat n) a + a
theorem
Pi.orderedAddCommGroup.proof_8
{I : Type u_1}
{f : I → Type u_2}
[(i : I) → OrderedAddCommGroup (f i)]
(n : ℕ)
(a : (i : I) → f i)
:
SubNegMonoid.zsmul (Int.negSucc n) a = -SubNegMonoid.zsmul (↑n.succ) a
theorem
Pi.orderedAddCommGroup.proof_5
{I : Type u_1}
{f : I → Type u_2}
[(i : I) → OrderedAddCommGroup (f i)]
(a : (i : I) → f i)
(b : (i : I) → f i)
:
theorem
Pi.orderedAddCommGroup.proof_11
{I : Type u_1}
{f : I → Type u_2}
[(i : I) → OrderedAddCommGroup (f i)]
(a : (i : I) → f i)
(b : (i : I) → f i)
:
theorem
Pi.orderedAddCommGroup.proof_1
{I : Type u_1}
{f : I → Type u_2}
[(i : I) → OrderedAddCommGroup (f i)]
(a : (i : I) → f i)
:
instance
Pi.orderedAddCommGroup
{I : Type u_2}
{f : I → Type u_6}
[(i : I) → OrderedAddCommGroup (f i)]
:
OrderedAddCommGroup ((i : I) → f i)
Equations
- Pi.orderedAddCommGroup = OrderedAddCommGroup.mk ⋯
theorem
Pi.orderedAddCommGroup.proof_9
{I : Type u_1}
{f : I → Type u_2}
[(i : I) → OrderedAddCommGroup (f i)]
(a : (i : I) → f i)
:
instance
Pi.orderedCommGroup
{I : Type u_2}
{f : I → Type u_6}
[(i : I) → OrderedCommGroup (f i)]
:
OrderedCommGroup ((i : I) → f i)
Equations
- Pi.orderedCommGroup = OrderedCommGroup.mk ⋯
instance
Pi.orderedSemiring
{I : Type u_2}
{f : I → Type u_6}
[(i : I) → OrderedSemiring (f i)]
:
OrderedSemiring ((i : I) → f i)
Equations
- Pi.orderedSemiring = OrderedSemiring.mk ⋯ ⋯ ⋯ ⋯
instance
Pi.orderedCommSemiring
{I : Type u_2}
{f : I → Type u_6}
[(i : I) → OrderedCommSemiring (f i)]
:
OrderedCommSemiring ((i : I) → f i)
Equations
- Pi.orderedCommSemiring = OrderedCommSemiring.mk ⋯
instance
Pi.orderedRing
{I : Type u_2}
{f : I → Type u_6}
[(i : I) → OrderedRing (f i)]
:
OrderedRing ((i : I) → f i)
Equations
- Pi.orderedRing = OrderedRing.mk ⋯ ⋯ ⋯
instance
Pi.orderedCommRing
{I : Type u_2}
{f : I → Type u_6}
[(i : I) → OrderedCommRing (f i)]
:
OrderedCommRing ((i : I) → f i)
Equations
- Pi.orderedCommRing = OrderedCommRing.mk ⋯
theorem
Function.const_nonneg_of_nonneg
{α : Type u_3}
(β : Type u_4)
[Zero α]
[Preorder α]
{a : α}
(ha : 0 ≤ a)
:
0 ≤ Function.const β a
theorem
Function.one_le_const_of_one_le
{α : Type u_3}
(β : Type u_4)
[One α]
[Preorder α]
{a : α}
(ha : 1 ≤ a)
:
1 ≤ Function.const β a
theorem
Function.const_nonpos_of_nonpos
{α : Type u_3}
(β : Type u_4)
[Zero α]
[Preorder α]
{a : α}
(ha : a ≤ 0)
:
Function.const β a ≤ 0
theorem
Function.const_le_one_of_le_one
{α : Type u_3}
(β : Type u_4)
[One α]
[Preorder α]
{a : α}
(ha : a ≤ 1)
:
Function.const β a ≤ 1
@[simp]
theorem
Pi.mulSingle_le_mulSingle
{ι : Type u_7}
{α : ι → Type u_8}
[DecidableEq ι]
[(i : ι) → One (α i)]
[(i : ι) → Preorder (α i)]
{i : ι}
{a : α i}
{b : α i}
:
Pi.mulSingle i a ≤ Pi.mulSingle i b ↔ a ≤ b
theorem
Pi.GCongr.mulSingle_mono
{ι : Type u_7}
{α : ι → Type u_8}
[DecidableEq ι]
[(i : ι) → One (α i)]
[(i : ι) → Preorder (α i)]
{i : ι}
{a : α i}
{b : α i}
:
a ≤ b → Pi.mulSingle i a ≤ Pi.mulSingle i b
Alias of the reverse direction of Pi.mulSingle_le_mulSingle
.
@[simp]
theorem
Pi.one_le_mulSingle
{ι : Type u_7}
{α : ι → Type u_8}
[DecidableEq ι]
[(i : ι) → One (α i)]
[(i : ι) → Preorder (α i)]
{i : ι}
{a : α i}
:
1 ≤ Pi.mulSingle i a ↔ 1 ≤ a
@[simp]
theorem
Pi.mulSingle_le_one
{ι : Type u_7}
{α : ι → Type u_8}
[DecidableEq ι]
[(i : ι) → One (α i)]
[(i : ι) → Preorder (α i)]
{i : ι}
{a : α i}
:
Pi.mulSingle i a ≤ 1 ↔ a ≤ 1