Fin lemmas #
The purpose of this file is to define some results Fin currently in Mathlib.
At some point these should either be up-streamed to Mathlib or replaced with definitions already in Mathlib.
@[simp]
@[simp]
def
PhysLean.Fin.finExtractOnPermHom
{n m : ℕ}
(i : Fin n.succ.succ)
(σ : Fin n.succ.succ ≃ Fin m.succ.succ)
:
Given an equivalence Fin n.succ.succ ≃ Fin n.succ.succ
, and an i : Fin n.succ.succ
,
the map Fin n.succ → Fin n.succ
obtained by dropping i
and it's image.
Equations
- PhysLean.Fin.finExtractOnPermHom i σ x = PhysLean.Fin.predAboveI (σ i) (σ ((PhysLean.Fin.finExtractOne i).symm (Sum.inr x)))
Instances For
def
PhysLean.Fin.finExtractOnePerm
{n m : ℕ}
(i : Fin n.succ.succ)
(σ : Fin n.succ.succ ≃ Fin m.succ.succ)
:
Given an equivalence Fin n.succ.succ ≃ Fin n.succ.succ
, and an i : Fin n.succ.succ
,
the equivalence Fin n.succ ≃ Fin n.succ
obtained by dropping i
and it's image.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The equivalence of types Fin n.succ.succ ≃ (Fin 1 ⊕ Fin 1) ⊕ Fin n
extracting
the i
and (i.succAbove j)
.
Equations
- PhysLean.Fin.finExtractTwo i j = (PhysLean.Fin.finExtractOne i).trans (((Equiv.refl (Fin 1)).sumCongr (PhysLean.Fin.finExtractOne j)).trans (Equiv.sumAssoc (Fin 1) (Fin 1) (Fin n)).symm)
Instances For
def
PhysLean.Fin.finMapToEquiv
{n m : ℕ}
(f1 : Fin n → Fin m)
(f2 : Fin m → Fin n)
(h : ∀ (x : Fin m), f1 (f2 x) = x := by decide)
(h' : ∀ (x : Fin n), f2 (f1 x) = x := by decide)
:
Takes two maps Fin n → Fin n
and returns the equivalence they form.
Equations
- PhysLean.Fin.finMapToEquiv f1 f2 h h' = { toFun := f1, invFun := f2, left_inv := h', right_inv := h }
Instances For
@[simp]