Instances and theorems on pi types #
This file provides instances for the typeclass defined in Algebra.Group.Defs
. More sophisticated
instances are defined in Algebra.Group.Pi.Lemmas
files elsewhere.
Porting note #
This file relied on the pi_instance
tactic, which was not available at the time of porting. The
comment --pi_instance
is inserted before all fields which were previously derived by
pi_instance
. See this Zulip discussion:
[https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/not.20porting.20pi_instance]
instance
Pi.addSemigroup
{I : Type u}
{f : I → Type v₁}
[(i : I) → AddSemigroup (f i)]
:
AddSemigroup ((i : I) → f i)
Equations
instance
Pi.commSemigroup
{I : Type u}
{f : I → Type v₁}
[(i : I) → CommSemigroup (f i)]
:
CommSemigroup ((i : I) → f i)
Equations
instance
Pi.addCommSemigroup
{I : Type u}
{f : I → Type v₁}
[(i : I) → AddCommSemigroup (f i)]
:
AddCommSemigroup ((i : I) → f i)
Equations
instance
Pi.mulOneClass
{I : Type u}
{f : I → Type v₁}
[(i : I) → MulOneClass (f i)]
:
MulOneClass ((i : I) → f i)
Equations
instance
Pi.addZeroClass
{I : Type u}
{f : I → Type v₁}
[(i : I) → AddZeroClass (f i)]
:
AddZeroClass ((i : I) → f i)
Equations
instance
Pi.invOneClass
{I : Type u}
{f : I → Type v₁}
[(i : I) → InvOneClass (f i)]
:
InvOneClass ((i : I) → f i)
Equations
instance
Pi.negZeroClass
{I : Type u}
{f : I → Type v₁}
[(i : I) → NegZeroClass (f i)]
:
NegZeroClass ((i : I) → f i)
Equations
instance
Pi.commMonoid
{I : Type u}
{f : I → Type v₁}
[(i : I) → CommMonoid (f i)]
:
CommMonoid ((i : I) → f i)
Equations
instance
Pi.addCommMonoid
{I : Type u}
{f : I → Type v₁}
[(i : I) → AddCommMonoid (f i)]
:
AddCommMonoid ((i : I) → f i)
Equations
instance
Pi.divInvMonoid
{I : Type u}
{f : I → Type v₁}
[(i : I) → DivInvMonoid (f i)]
:
DivInvMonoid ((i : I) → f i)
Equations
instance
Pi.subNegMonoid
{I : Type u}
{f : I → Type v₁}
[(i : I) → SubNegMonoid (f i)]
:
SubNegMonoid ((i : I) → f i)
Equations
instance
Pi.divInvOneMonoid
{I : Type u}
{f : I → Type v₁}
[(i : I) → DivInvOneMonoid (f i)]
:
DivInvOneMonoid ((i : I) → f i)
Equations
instance
Pi.subNegZeroMonoid
{I : Type u}
{f : I → Type v₁}
[(i : I) → SubNegZeroMonoid (f i)]
:
SubNegZeroMonoid ((i : I) → f i)
Equations
instance
Pi.involutiveInv
{I : Type u}
{f : I → Type v₁}
[(i : I) → InvolutiveInv (f i)]
:
InvolutiveInv ((i : I) → f i)
Equations
instance
Pi.involutiveNeg
{I : Type u}
{f : I → Type v₁}
[(i : I) → InvolutiveNeg (f i)]
:
InvolutiveNeg ((i : I) → f i)
Equations
instance
Pi.divisionMonoid
{I : Type u}
{f : I → Type v₁}
[(i : I) → DivisionMonoid (f i)]
:
DivisionMonoid ((i : I) → f i)
Equations
instance
Pi.subtractionMonoid
{I : Type u}
{f : I → Type v₁}
[(i : I) → SubtractionMonoid (f i)]
:
SubtractionMonoid ((i : I) → f i)
Equations
instance
Pi.divisionCommMonoid
{I : Type u}
{f : I → Type v₁}
[(i : I) → DivisionCommMonoid (f i)]
:
DivisionCommMonoid ((i : I) → f i)
Equations
instance
Pi.instSubtractionCommMonoid
{I : Type u}
{f : I → Type v₁}
[(i : I) → SubtractionCommMonoid (f i)]
:
SubtractionCommMonoid ((i : I) → f i)
Equations
instance
Pi.addCommGroup
{I : Type u}
{f : I → Type v₁}
[(i : I) → AddCommGroup (f i)]
:
AddCommGroup ((i : I) → f i)
Equations
instance
Pi.instIsLeftCancelMul
{I : Type u}
{f : I → Type v₁}
[(i : I) → Mul (f i)]
[∀ (i : I), IsLeftCancelMul (f i)]
:
IsLeftCancelMul ((i : I) → f i)
instance
Pi.instIsLeftCancelAdd
{I : Type u}
{f : I → Type v₁}
[(i : I) → Add (f i)]
[∀ (i : I), IsLeftCancelAdd (f i)]
:
IsLeftCancelAdd ((i : I) → f i)
instance
Pi.instIsRightCancelMul
{I : Type u}
{f : I → Type v₁}
[(i : I) → Mul (f i)]
[∀ (i : I), IsRightCancelMul (f i)]
:
IsRightCancelMul ((i : I) → f i)
instance
Pi.instIsRightCancelAdd
{I : Type u}
{f : I → Type v₁}
[(i : I) → Add (f i)]
[∀ (i : I), IsRightCancelAdd (f i)]
:
IsRightCancelAdd ((i : I) → f i)
instance
Pi.instIsCancelMul
{I : Type u}
{f : I → Type v₁}
[(i : I) → Mul (f i)]
[∀ (i : I), IsCancelMul (f i)]
:
IsCancelMul ((i : I) → f i)
instance
Pi.instIsCancelAdd
{I : Type u}
{f : I → Type v₁}
[(i : I) → Add (f i)]
[∀ (i : I), IsCancelAdd (f i)]
:
IsCancelAdd ((i : I) → f i)
instance
Pi.leftCancelSemigroup
{I : Type u}
{f : I → Type v₁}
[(i : I) → LeftCancelSemigroup (f i)]
:
LeftCancelSemigroup ((i : I) → f i)
Equations
instance
Pi.addLeftCancelSemigroup
{I : Type u}
{f : I → Type v₁}
[(i : I) → AddLeftCancelSemigroup (f i)]
:
AddLeftCancelSemigroup ((i : I) → f i)
Equations
instance
Pi.rightCancelSemigroup
{I : Type u}
{f : I → Type v₁}
[(i : I) → RightCancelSemigroup (f i)]
:
RightCancelSemigroup ((i : I) → f i)
Equations
instance
Pi.addRightCancelSemigroup
{I : Type u}
{f : I → Type v₁}
[(i : I) → AddRightCancelSemigroup (f i)]
:
AddRightCancelSemigroup ((i : I) → f i)
Equations
instance
Pi.leftCancelMonoid
{I : Type u}
{f : I → Type v₁}
[(i : I) → LeftCancelMonoid (f i)]
:
LeftCancelMonoid ((i : I) → f i)
Equations
instance
Pi.addLeftCancelMonoid
{I : Type u}
{f : I → Type v₁}
[(i : I) → AddLeftCancelMonoid (f i)]
:
AddLeftCancelMonoid ((i : I) → f i)
Equations
instance
Pi.rightCancelMonoid
{I : Type u}
{f : I → Type v₁}
[(i : I) → RightCancelMonoid (f i)]
:
RightCancelMonoid ((i : I) → f i)
Equations
instance
Pi.addRightCancelMonoid
{I : Type u}
{f : I → Type v₁}
[(i : I) → AddRightCancelMonoid (f i)]
:
AddRightCancelMonoid ((i : I) → f i)
Equations
instance
Pi.cancelMonoid
{I : Type u}
{f : I → Type v₁}
[(i : I) → CancelMonoid (f i)]
:
CancelMonoid ((i : I) → f i)
Equations
instance
Pi.addCancelMonoid
{I : Type u}
{f : I → Type v₁}
[(i : I) → AddCancelMonoid (f i)]
:
AddCancelMonoid ((i : I) → f i)
Equations
instance
Pi.cancelCommMonoid
{I : Type u}
{f : I → Type v₁}
[(i : I) → CancelCommMonoid (f i)]
:
CancelCommMonoid ((i : I) → f i)
Equations
instance
Pi.addCancelCommMonoid
{I : Type u}
{f : I → Type v₁}
[(i : I) → AddCancelCommMonoid (f i)]
:
AddCancelCommMonoid ((i : I) → f i)
Equations
def
uniqueOfSurjectiveOne
(α : Type u_4)
{β : Type u_5}
[One β]
(h : Function.Surjective 1)
:
Unique β
If the one function is surjective, the codomain is trivial.
Equations
Instances For
def
uniqueOfSurjectiveZero
(α : Type u_4)
{β : Type u_5}
[Zero β]
(h : Function.Surjective 0)
:
Unique β
If the zero function is surjective, the codomain is trivial.
Equations
Instances For
theorem
Subsingleton.pi_mulSingle_eq
{I : Type u}
{α : Type u_4}
[DecidableEq I]
[Subsingleton I]
[One α]
(i : I)
(x : α)
:
theorem
Subsingleton.pi_single_eq
{I : Type u}
{α : Type u_4}
[DecidableEq I]
[Subsingleton I]
[Zero α]
(i : I)
(x : α)
:
@[simp]
theorem
Sum.elim_mulSingle_one
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
[DecidableEq α]
[DecidableEq β]
[One γ]
(i : α)
(c : γ)
:
@[simp]
theorem
Sum.elim_single_zero
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
[DecidableEq α]
[DecidableEq β]
[Zero γ]
(i : α)
(c : γ)
:
@[simp]
theorem
Sum.elim_one_mulSingle
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
[DecidableEq α]
[DecidableEq β]
[One γ]
(i : β)
(c : γ)
:
@[simp]
theorem
Sum.elim_zero_single
{α : Type u_1}
{β : Type u_2}
{γ : Type u_3}
[DecidableEq α]
[DecidableEq β]
[Zero γ]
(i : β)
(c : γ)
: