Lemmas for tuples Fin m → α #
This file contains alternative definitions of common operators on vectors which expand
definitionally to the expected expression when evaluated on ![] notation.
This allows "proof by reflection", where we prove f = ![f 0, f 1] by defining
FinVec.etaExpand f to be equal to the RHS definitionally, and then prove that
f = etaExpand f.
The definitions in this file should normally not be used directly; the intent is for the
corresponding *_eq lemmas to be used in a place where they are definitionally unfolded.
Main definitions #
Evaluate FinVec.seq f v = ![(f 0) (v 0), (f 1) (v 1), ...]
Instances For
FinVec.map f v = ![f (v 0), f (v 1), ...]
Instances For
Produce a term of the form f 0 * f 1 * ... * f (n - 1) and an application of FinVec.prod_eq
that shows it is equal to ∏ i, f i.
Instances For
Produce a term of the form f 0 + f 1 + ... + f (n - 1) and an application of FinVec.sum_eq
that shows it is equal to ∑ i, f i.
Instances For
Rewrites ∏ i : Fin n, f i as f 0 * f 1 * ... * f (n - 1) when n is a numeral.
Instances For
Rewrites ∑ i : Fin n, f i as f 0 + f 1 + ... + f (n - 1) when n is a numeral.