refactor: Change in contraction notation
This commit is contained in:
parent
6701ee7b37
commit
321e69e52e
5 changed files with 326 additions and 324 deletions
|
@ -281,7 +281,16 @@ lemma take_uncontractedIndexEquiv_symm (k : c.uncontracted) :
|
|||
rw [hl]
|
||||
rw [uncontractedIndexEquiv_symm_eq_filter_length]
|
||||
simp
|
||||
/-!
|
||||
|
||||
## Uncontracted List get
|
||||
|
||||
-/
|
||||
|
||||
def uncontractedListGet {φs : List 𝓕.States} (φsΛ : WickContraction φs.length) :
|
||||
List 𝓕.States := φsΛ.uncontractedList.map φs.get
|
||||
|
||||
scoped[WickContraction] notation "[" φsΛ "]ᵘᶜ" => uncontractedListGet φsΛ
|
||||
/-!
|
||||
|
||||
## uncontractedStatesEquiv
|
||||
|
@ -291,20 +300,21 @@ lemma take_uncontractedIndexEquiv_symm (k : c.uncontracted) :
|
|||
/-- The equivalence between the type `Option c.uncontracted` for `WickContraction φs.length` and
|
||||
`Option (Fin (c.uncontractedList.map φs.get).length)`, that is optional positions of
|
||||
`c.uncontractedList.map φs.get` induced by `uncontractedIndexEquiv`. -/
|
||||
def uncontractedStatesEquiv (φs : List 𝓕.States) (c : WickContraction φs.length) :
|
||||
Option c.uncontracted ≃ Option (Fin (c.uncontractedList.map φs.get).length) :=
|
||||
Equiv.optionCongr (c.uncontractedIndexEquiv.symm.trans (finCongr (by simp)))
|
||||
def uncontractedStatesEquiv (φs : List 𝓕.States) (φsΛ : WickContraction φs.length) :
|
||||
Option φsΛ.uncontracted ≃ Option (Fin [φsΛ]ᵘᶜ.length) :=
|
||||
Equiv.optionCongr (φsΛ.uncontractedIndexEquiv.symm.trans
|
||||
(finCongr (by simp [uncontractedListGet])))
|
||||
|
||||
@[simp]
|
||||
lemma uncontractedStatesEquiv_none (φs : List 𝓕.States) (c : WickContraction φs.length) :
|
||||
(uncontractedStatesEquiv φs c).toFun none = none := by
|
||||
lemma uncontractedStatesEquiv_none (φs : List 𝓕.States) (φsΛ : WickContraction φs.length) :
|
||||
(uncontractedStatesEquiv φs φsΛ).toFun none = none := by
|
||||
simp [uncontractedStatesEquiv]
|
||||
|
||||
lemma uncontractedStatesEquiv_list_sum [AddCommMonoid α] (φs : List 𝓕.States)
|
||||
(c : WickContraction φs.length) (f : Option (Fin (c.uncontractedList.map φs.get).length) → α) :
|
||||
∑ (i : Option (Fin (c.uncontractedList.map φs.get).length)), f i =
|
||||
∑ (i : Option c.uncontracted), f (c.uncontractedStatesEquiv φs i) := by
|
||||
rw [(c.uncontractedStatesEquiv φs).sum_comp]
|
||||
(φsΛ : WickContraction φs.length) (f : Option (Fin [φsΛ]ᵘᶜ.length) → α) :
|
||||
∑ (i : Option (Fin [φsΛ]ᵘᶜ.length)), f i =
|
||||
∑ (i : Option φsΛ.uncontracted), f (φsΛ.uncontractedStatesEquiv φs i) := by
|
||||
rw [(φsΛ.uncontractedStatesEquiv φs).sum_comp]
|
||||
|
||||
/-!
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue