HepLean Documentation

HepLean.Tensors.Tree.NodeIdentities.PermContr

The commutativity of Permutations and contractions. #

There is very likely a better way to do this using TensorSpecies.contrMap_tprod.

theorem TensorSpecies.contrFin1Fin1_naturality (S : TensorSpecies) {n : } {c : Fin n.succ.succS.C} {c1 : Fin n.succ.succS.C} {i : Fin n.succ.succ} {j : Fin n.succ} (h : c1 (i.succAbove j) = S (c1 i)) (σ : IndexNotation.OverColor.mk c IndexNotation.OverColor.mk c1) :
theorem TensorSpecies.contrIso_comm_aux_3 (S : TensorSpecies) {n : } {c : Fin n.succ.succS.C} {c1 : Fin n.succ.succS.C} {i : Fin n.succ.succ} {j : Fin n.succ} (σ : IndexNotation.OverColor.mk c IndexNotation.OverColor.mk c1) :

A helper function used to proof the relation between perm and contr.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem TensorSpecies.contrIso_comm_aux_5 (S : TensorSpecies) {n : } {c : Fin n.succ.succS.C} {c1 : Fin n.succ.succS.C} {i : Fin n.succ.succ} {j : Fin n.succ} (h : c1 (i.succAbove j) = S (c1 i)) (σ : IndexNotation.OverColor.mk c IndexNotation.OverColor.mk c1) :
    theorem TensorSpecies.contrIso_comm_map (S : TensorSpecies) {n : } {c : Fin n.succ.succS.C} {c1 : Fin n.succ.succS.C} {i : Fin n.succ.succ} {j : Fin n.succ} {h : c1 (i.succAbove j) = S (c1 i)} (σ : IndexNotation.OverColor.mk c IndexNotation.OverColor.mk c1) :
    CategoryTheory.CategoryStruct.comp (S.F.map σ) (S.contrIso c1 i j h).hom = CategoryTheory.CategoryStruct.comp (S.contrIso c ((IndexNotation.OverColor.Hom.toEquiv σ).symm i) ((IndexNotation.OverColor.Hom.toEquiv (IndexNotation.OverColor.extractOne i σ)).symm j) ).hom (S.contrIsoComm σ)
    theorem TensorSpecies.contrMap_naturality (S : TensorSpecies) {n : } {c : Fin n.succ.succS.C} {c1 : Fin n.succ.succS.C} {i : Fin n.succ.succ} {j : Fin n.succ} {h : c1 (i.succAbove j) = S (c1 i)} (σ : IndexNotation.OverColor.mk c IndexNotation.OverColor.mk c1) :

    Contraction commutes with S.F.map σ on removing corresponding indices from σ.

    theorem TensorTree.perm_contr {S : TensorSpecies} {n : } {c : Fin n.succ.succS.C} {c1 : Fin n.succ.succS.C} {i : Fin n.succ.succ} {j : Fin n.succ} {h : c1 (i.succAbove j) = S (c1 i)} (t : TensorTree S c) (σ : IndexNotation.OverColor.mk c IndexNotation.OverColor.mk c1) :

    Permuting indices, and then contracting is equivalent to contracting and then permuting, once care is taking about ensuring one is contracting the same idices.

    theorem TensorTree.perm_contr_congr_mkIso_cond {S : TensorSpecies} {n : } {c : Fin n.succ.succS.C} {c1 : Fin n.succ.succS.C} {i : Fin n.succ.succ} {j : Fin n.succ} {σ : IndexNotation.OverColor.mk c IndexNotation.OverColor.mk c1} {i' : Fin n.succ.succ} {j' : Fin n.succ} (hi : i' = (IndexNotation.OverColor.Hom.toEquiv σ).symm i) (hj : j' = (IndexNotation.OverColor.Hom.toEquiv (IndexNotation.OverColor.extractOne i σ)).symm j) :
    theorem TensorTree.perm_contr_congr_contr_cond {S : TensorSpecies} {n : } {c : Fin n.succ.succS.C} {c1 : Fin n.succ.succS.C} {i : Fin n.succ.succ} {j : Fin n.succ} (h : c1 (i.succAbove j) = S (c1 i)) {σ : IndexNotation.OverColor.mk c IndexNotation.OverColor.mk c1} {i' : Fin n.succ.succ} {j' : Fin n.succ} (hi : i' = (IndexNotation.OverColor.Hom.toEquiv σ).symm i) (hj : j' = (IndexNotation.OverColor.Hom.toEquiv (IndexNotation.OverColor.extractOne i σ)).symm j) :
    c (i'.succAbove j') = S (c i')
    theorem TensorTree.perm_contr_congr {S : TensorSpecies} {n : } {c : Fin n.succ.succS.C} {c1 : Fin n.succ.succS.C} {i : Fin n.succ.succ} {j : Fin n.succ} {h : c1 (i.succAbove j) = S (c1 i)} {t : TensorTree S c} {σ : IndexNotation.OverColor.mk c IndexNotation.OverColor.mk c1} (i' : Fin n.succ.succ) (j' : Fin n.succ) (hi : autoParam (i' = (IndexNotation.OverColor.Hom.toEquiv σ).symm i) _auto✝) (hj : autoParam (j' = (IndexNotation.OverColor.Hom.toEquiv (IndexNotation.OverColor.extractOne i σ)).symm j) _auto✝) :