Instances and theorems on pi types #
This file provides basic definitions and notation instances for Pi types.
Instances of more sophisticated classes are defined in pi.lean
files elsewhere.
1
, 0
, +
, *
, -
, ⁻¹
, and /
are defined pointwise.
Equations
- pi.has_zero = {zero := λ (_x : I), 0}
Equations
- pi.has_one = {one := λ (_x : I), 1}
Equations
- pi.has_mul = {mul := λ (f_1 g : Π (i : I), f i) (i : I), (f_1 i) * g i}
Equations
- pi.has_add = {add := λ (f_1 g : Π (i : I), f i) (i : I), f_1 i + g i}
Equations
- pi.has_inv = {inv := λ (f_1 : Π (i : I), f i) (i : I), (f_1 i)⁻¹}
Equations
- pi.has_neg = {neg := λ (f_1 : Π (i : I), f i) (i : I), -f_1 i}
Equations
- pi.has_sub = {sub := λ (f_1 g : Π (i : I), f i) (i : I), f_1 i - g i}
Equations
- pi.has_div = {div := λ (f_1 g : Π (i : I), f i) (i : I), f_1 i / g i}
The function supported at i
, with value x
there, and 0
elsewhere.
Equations
- pi.single i x = function.update 0 i x
The function supported at i
, with value x
there, and 1
elsewhere.
Equations
- pi.mul_single i x = function.update 1 i x
Abbreviation for mul_single_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.single
can be expressed as an ite
On non-dependent functions, pi.mul_single
can be expressed as an ite
On non-dependent functions, pi.single
is symmetric in the two
indices.
On non-dependent functions, pi.mul_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.