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)]
:
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)]
:
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 = 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)]
:
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 : I → Type u_6}
[(i : I) → OrderedCancelAddCommMonoid (f i)]
:
OrderedCancelAddCommMonoid ((i : I) → f i)
Equations
- Pi.orderedAddCancelCommMonoid = let __spread.0 := Pi.addCommMonoid; OrderedCancelAddCommMonoid.mk ⋯
theorem
Pi.orderedAddCancelCommMonoid.proof_2
{I : Type u_1}
{f : I → Type u_2}
[(i : I) → OrderedCancelAddCommMonoid (f i)]
:
theorem
Pi.orderedAddCancelCommMonoid.proof_1
{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 = let __spread.0 := Pi.commMonoid; OrderedCancelCommMonoid.mk ⋯
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_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 = x + AddMonoid.nsmul n x
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_9
{I : Type u_1}
{f : I → Type u_2}
[(i : I) → OrderedAddCommGroup (f i)]
(a : (i : I) → f i)
:
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 (↑(Nat.succ n)) 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_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_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
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 = let __spread.0 := Pi.addCommGroup; let __spread.1 := Pi.orderedAddCommMonoid; OrderedAddCommGroup.mk ⋯
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 (Nat.succ n)) a = a + SubNegMonoid.zsmul (Int.ofNat n) a
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.orderedCommGroup
{I : Type u_2}
{f : I → Type 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 : I → Type 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 : I → Type 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 : I → Type 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 : I → Type 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)
:
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