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]
1
, 0
, +
, *
, +ᵥ
, •
, ^
, -
, ⁻¹
, and /
are defined pointwise.
Equations
- Pi.instOne = { one := fun (x : I) => 1 }
Equations
- Pi.instZero = { zero := fun (x : I) => 0 }
Equations
- Pi.instMul = { mul := fun (f_1 g : (i : I) → f i) (i : I) => f_1 i * g i }
Equations
- Pi.instAdd = { add := fun (f_1 g : (i : I) → f i) (i : I) => f_1 i + g i }
Equations
- Pi.instSMul = { smul := fun (s : α) (x : (i : I) → f i) (i : I) => s • x i }
Equations
- Pi.instVAdd = { vadd := fun (s : α) (x : (i : I) → f i) (i : I) => s +ᵥ x i }
Equations
- Pi.instPow = { pow := fun (x : (i : I) → f i) (b : β) (i : I) => x i ^ b }
Equations
- Pi.instInv = { inv := fun (f_1 : (i : I) → f i) (i : I) => (f_1 i)⁻¹ }
Equations
- Pi.instNeg = { neg := fun (f_1 : (i : I) → f i) (i : I) => -f_1 i }
Equations
- Pi.instDiv = { div := fun (f_1 g : (i : I) → f i) (i : I) => f_1 i / g i }
Equations
- Pi.instSub = { sub := fun (f_1 g : (i : I) → f i) (i : I) => f_1 i - g i }
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
- Pi.addMonoid = AddMonoid.mk ⋯ ⋯ (fun (n : ℕ) (x : (i : I) → f i) (i : I) => n • x i) ⋯ ⋯
Equations
Equations
Equations
- Pi.divInvMonoid = DivInvMonoid.mk ⋯ (fun (z : ℤ) (x : (i : I) → f i) (i : I) => x i ^ z) ⋯ ⋯ ⋯
Equations
- Pi.subNegMonoid = SubNegMonoid.mk ⋯ (fun (z : ℤ) (x : (i : I) → f i) (i : I) => z • x i) ⋯ ⋯ ⋯
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
The function supported at i
, with value x
there, and 1
elsewhere.
Equations
- Pi.mulSingle i x = Function.update 1 i x
The function supported at i
, with value x
there, and 0
elsewhere.
Equations
- Pi.single i x = Function.update 0 i x
Abbreviation for mulSingle_eq_of_ne h.symm
, for ease of use by simp
.
Abbreviation for single_eq_of_ne h.symm
, for ease of use by simp
.
On non-dependent functions, Pi.mulSingle
can be expressed as an ite
On non-dependent functions, Pi.mulSingle
is symmetric in the two indices.
On non-dependent functions, Pi.single
is symmetric in the two indices.
If the one function is surjective, the codomain is trivial.
Equations
If the zero function is surjective, the codomain is trivial.