Big operators and Fin #
Some results about products and sums over the type Fin.
The most important results are the induction formulas Fin.prod_univ_castSucc
and Fin.prod_univ_succ, and the formula Fin.prod_const for the product of a
constant function. These results have variants for sums instead of products.
Main declarations #
finFunctionFinEquiv: An explicit equivalence betweenFin n → Fin mandFin (m ^ n).
A sum of a function f : Fin 0 → β is 0 because Fin 0 is empty
A product of a function f : Fin 0 → β is 1 because Fin 0 is empty
A sum of a function f : Fin (n + 1) → β over all Fin (n + 1) is the sum of
f x, for some x : Fin (n + 1) plus the remaining product
A product of a function f : Fin (n + 1) → β over all Fin (n + 1)
is the product of f x, for some x : Fin (n + 1) times the remaining product
A sum of a function f : Fin (n + 1) → β over all Fin (n + 1) is the sum of
f 0 plus the remaining product
A product of a function f : Fin (n + 1) → β over all Fin (n + 1)
is the product of f 0 plus the remaining product
A sum of a function f : Fin (n + 1) → β over all Fin (n + 1) is the sum of
f (Fin.last n) plus the remaining sum
A product of a function f : Fin (n + 1) → β over all Fin (n + 1)
is the product of f (Fin.last n) plus the remaining product
For f = (a₁, ..., aₙ) in αⁿ, partialSum f is
(0, a₁, a₁ + a₂, ..., a₁ + ... + aₙ) in αⁿ⁺¹.
Equations
- Fin.partialSum f i = List.sum (List.take (↑i) (List.ofFn f))
Instances For
For f = (a₁, ..., aₙ) in αⁿ, partialProd f is (1, a₁, a₁a₂, ..., a₁...aₙ) in αⁿ⁺¹.
Equations
- Fin.partialProd f i = List.prod (List.take (↑i) (List.ofFn f))
Instances For
Let (g₀, g₁, ..., gₙ) be a tuple of elements in Gⁿ⁺¹.
Then if k < j, this says -(g₀ + g₁ + ... + gₖ₋₁) + (g₀ + g₁ + ... + gₖ) = gₖ.
If k = j, it says -(g₀ + g₁ + ... + gₖ₋₁) + (g₀ + g₁ + ... + gₖ₊₁) = gₖ + gₖ₊₁.
If k > j, it says -(g₀ + g₁ + ... + gₖ) + (g₀ + g₁ + ... + gₖ₊₁) = gₖ₊₁.
Useful for defining group cohomology.
Let (g₀, g₁, ..., gₙ) be a tuple of elements in Gⁿ⁺¹.
Then if k < j, this says (g₀g₁...gₖ₋₁)⁻¹ * g₀g₁...gₖ = gₖ.
If k = j, it says (g₀g₁...gₖ₋₁)⁻¹ * g₀g₁...gₖ₊₁ = gₖgₖ₊₁.
If k > j, it says (g₀g₁...gₖ)⁻¹ * g₀g₁...gₖ₊₁ = gₖ₊₁.
Useful for defining group cohomology.
Equations
- List.alternatingSum_eq_finset_sum.match_1 motive x h_1 h_2 h_3 = List.casesOn x (h_1 ()) fun head tail => List.casesOn tail (h_2 head) fun head_1 tail => h_3 head head_1 tail