PhysLean/HepLean/Tensors/Tree/NodeIdentities/Congr.lean
2024-10-28 14:05:38 +00:00

53 lines
1.4 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/-
Copyright (c) 2024 Joseph Tooby-Smith. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Joseph Tooby-Smith
-/
import HepLean.Tensors.Tree.Elab
/-!
## Congr results
-/
open IndexNotation
open CategoryTheory
open MonoidalCategory
open OverColor
open HepLean.Fin
open TensorProduct
namespace TensorTree
variable {S : TensorSpecies}
/-!
## Congr results
-/
variable {n m : }
lemma perm_congr {c1 : Fin n → S.C} {c2 : Fin m → S.C} {T T' : TensorTree S c1}
{σ σ' : OverColor.mk c1 ⟶ OverColor.mk c2}
(h : σ = σ') (hT : T.tensor = T'.tensor):
(perm σ T).tensor = (perm σ' T').tensor := by
rw [h]
simp only [perm_tensor, hT]
lemma perm_update {c1 : Fin n → S.C} {c2 : Fin m → S.C} {T : TensorTree S c1}
{σ : OverColor.mk c1 ⟶ OverColor.mk c2} (σ' : OverColor.mk c1 ⟶ OverColor.mk c2)
(h : σ = σ') :
(perm σ T).tensor = (perm σ' T).tensor := by rw [h]
lemma contr_congr {n : } {c : Fin n.succ.succ → S.C} {i : Fin n.succ.succ}
(i' : Fin n.succ.succ) {j : Fin n.succ} (j' : Fin n.succ)
{h : c (i.succAbove j) = S.τ (c i)} {t : TensorTree S c}
(hi : i = i' := by decide) (hj : j = j' := by decide)
:(contr i j h t).tensor =
(perm (mkIso (by rw [hi, hj])).hom (contr i' j' (by rw [← hi, ← hj, h]) t)).tensor := by
subst hi
subst hj
simp [perm_tensor, mkIso_refl_hom]
end TensorTree