feat: Some simple extensions of lemmas

This commit is contained in:
jstoobysmith 2024-11-15 10:33:20 +00:00
parent a8e4562363
commit 9763e1240b
7 changed files with 150 additions and 11 deletions

View file

@ -279,6 +279,16 @@ def finExtractOnePerm (i : Fin n.succ.succ) (σ : Fin n.succ.succ ≃ Fin n.succ
right_inv x := by
simpa using congrFun (finExtractOnPermHom_inv (σ i) σ.symm) x
@[simp]
lemma finExtractOnePerm_apply (i : Fin n.succ.succ) (σ : Fin n.succ.succ ≃ Fin n.succ.succ)
(x : Fin n.succ) : finExtractOnePerm i σ x = predAboveI (σ i)
(σ ((finExtractOne i).symm (Sum.inr x))) := rfl
@[simp]
lemma finExtractOnePerm_symm_apply (i : Fin n.succ.succ) (σ : Fin n.succ.succ ≃ Fin n.succ.succ)
(x : Fin n.succ) : (finExtractOnePerm i σ).symm x = predAboveI (σ.symm (σ i))
(σ.symm ((finExtractOne (σ i)).symm (Sum.inr x))) := rfl
/-- The equivalence of types `Fin n.succ.succ ≃ (Fin 1 ⊕ Fin 1) ⊕ Fin n` extracting
the `i` and `(i.succAbove j)`. -/
def finExtractTwo {n : } (i : Fin n.succ.succ) (j : Fin n.succ) :
@ -331,4 +341,19 @@ def finMapToEquiv (f1 : Fin n → Fin m) (f2 : Fin m → Fin n)
left_inv := h'
right_inv := h
@[simp]
lemma finMapToEquiv_apply {f1 : Fin n → Fin m} {f2 : Fin m → Fin n}
{h : ∀ x, f1 (f2 x) = x} {h' : ∀ x, f2 (f1 x) = x} (x : Fin n) :
finMapToEquiv f1 f2 h h' x = f1 x := rfl
@[simp]
lemma finMapToEquiv_symm_apply {f1 : Fin n → Fin m} {f2 : Fin m → Fin n}
{h : ∀ x, f1 (f2 x) = x} {h' : ∀ x, f2 (f1 x) = x} (x : Fin m) :
(finMapToEquiv f1 f2 h h').symm x = f2 x := rfl
lemma finMapToEquiv_symm_eq {f1 : Fin n → Fin m} {f2 : Fin m → Fin n}
{h : ∀ x, f1 (f2 x) = x} {h' : ∀ x, f2 (f1 x) = x} :
(finMapToEquiv f1 f2 h h').symm = finMapToEquiv f2 f1 h' h := by
rfl
end HepLean.Fin