Physlib.QFT.PerturbationTheory.WickContraction.InsertAndContractNat
35 declarations
Insertion and optional contraction of index with into a Wick contraction
#insertAndContractNatGiven a Wick contraction on elements, an index , and an optional element from the set of uncontracted indices of , the function produces a new Wick contraction on elements. Let be the increasing map that skips (i.e., if and if ). - If , the new contraction consists of the pairs for every pair . - If , the new contraction consists of the pairs for every , plus the additional pair .
The set of contraction pairs in `insertAndContractNat` when contracting with an uncontracted index
#insertAndContractNat_of_isSomeLet be a Wick contraction on indices and be a target index. Let be an uncontracted index of (provided as an optional value that is not `none`). Let be the increasing map that skips (specifically, if and if ). Then the set of contraction pairs in the Wick contraction on indices obtained by inserting and contracting it with (via `insertAndContractNat`) is the union of: 1. The set of all pairs for every pair in the original contraction . 2. The new contraction pair .
is uncontracted in `insertAndContractNat c i none`
#self_mem_uncontracted_of_insertAndContractNat_noneFor any Wick contraction on indices and any index , the index is an uncontracted index in the Wick contraction on indices obtained by inserting into without forming a new contraction pair (i.e., `insertAndContractNat c i none`).
is not uncontracted in `insertAndContractNat c i (some j)`
#self_not_mem_uncontracted_of_insertAndContractNat_someLet be a Wick contraction on indices. For any index and any uncontracted index of , the index is not an uncontracted index in the Wick contraction on indices obtained by inserting and contracting it with (i.e., the contraction produced by `insertAndContractNat c i (some j)`).
is uncontracted in the expanded contraction iff is uncontracted in the original contraction
#insertAndContractNat_succAbove_mem_uncontracted_iffLet be a Wick contraction on indices. Let be the Wick contraction on indices obtained by inserting index and leaving it uncontracted (i.e., `insertAndContractNat c i none`). For any index , the shifted index is an uncontracted index in if and only if is an uncontracted index in .
Uncontracted indices after inserting into without a new pair
#mem_uncontracted_insertAndContractNat_none_iffLet be a Wick contraction on indices, and let . Let be the increasing map that skips , defined by if and if . An index is uncontracted in the Wick contraction produced by `insertAndContractNat c i none` if and only if or for some index that is uncontracted in .
Set of uncontracted indices after inserting an uncontracted index
#insertAndContractNat_none_uncontractedLet be a Wick contraction on indices, and let denote the set of its uncontracted indices. For any index , let be the increasing map that skips , defined by if and if . If a new Wick contraction on indices is formed by inserting into without contracting it (denoted by `insertAndContractNat c i none`), then its set of uncontracted indices is .
is uncontracted after inserting and contracting with iff for
#mem_uncontracted_insertAndContractNat_some_iffLet be a Wick contraction on elements. Let be an index to be inserted, and let be an uncontracted index of . Let be the increasing map that skips (i.e., if and if ). For any index , is an uncontracted index of the Wick contraction formed by inserting and contracting it with if and only if for some index that was uncontracted in and .
Uncontracted indices after inserting and contracting with in a Wick contraction
#insertAndContractNat_some_uncontractedLet be a Wick contraction on elements, and let denote the set of its uncontracted indices. Let be a new index and be an index that was previously uncontracted in . When is inserted into the system and specifically contracted with to form a new Wick contraction on elements, the set of uncontracted indices of this new contraction is obtained by removing from and applying the increasing map (which skips the value ) to the remaining indices. Mathematically, the new set of uncontracted indices is .
The inserted index is uncontracted in `insertAndContractNat c i none`
#insertAndContractNat_none_getDual?_isNoneLet be a Wick contraction on indices. For any index , let be the Wick contraction on indices obtained by inserting into without contracting it with any other index (i.e., using `insertAndContractNat c i none`). In the resulting contraction , the index is uncontracted.
The inserted index is uncontracted in `insertAndContractNat c i none`
#insertAndContractNat_none_getDual?_eq_noneLet be a Wick contraction on elements and be an index. If we form a new Wick contraction on elements by inserting the index without assigning it a contraction partner (using `insertAndContractNat c i none`), then the index is uncontracted in the resulting contraction, meaning its dual index is .
is uncontracted in `insertAndContractNat c i none` iff is uncontracted in
#insertAndContractNat_succAbove_getDual?_eq_none_iffLet be a Wick contraction on indices. For any index , let be the Wick contraction on indices obtained by inserting the index and leaving it uncontracted (i.e., using `insertAndContractNat c i none`). For any index , the shifted index is uncontracted in if and only if the index is uncontracted in .
is contracted in `insertAndContractNat c i none` iff is contracted in
#insertAndContractNat_succAbove_getDual?_isSome_iffLet be a Wick contraction on elements. For any index , let be the Wick contraction on elements obtained by inserting as an uncontracted index (using `insertAndContractNat c i none`). For any index , let be the index shifted to skip (i.e., if and if ). Then, the index is contracted in if and only if the index is contracted in .
The dual of in is for an uncontracted insertion of
#insertAndContractNat_succAbove_getDual?_getLet be a Wick contraction on indices and be an index. Let be the Wick contraction on indices obtained by inserting into and leaving uncontracted (i.e., ). Let be the strictly increasing map that skips , defined by if and if . For any index , if the index is contracted in , then its dual (the index it is paired with) in is , where is the dual of in .
The dual of the inserted index is
#insertAndContractNat_some_getDual?_eqLet be a Wick contraction on indices. Let be an index to be inserted and be an uncontracted index of . If we form a new Wick contraction on indices by inserting and contracting it with (denoted as `insertAndContractNat c i (some j)`), then the index paired with in this new contraction is , where is the map that shifts indices to skip .
is uncontracted in iff is uncontracted in for
#insertAndContractNat_some_getDual?_ne_noneLet be a Wick contraction on indices and let be an index. Suppose is an index that is uncontracted in . Let be the Wick contraction on indices obtained by inserting and pairing it with (using the function `WickContraction.insertAndContractNat`). Let be the increasing map that skips index (defined by if and if ). For any index such that , is an uncontracted index in if and only if is an uncontracted index in .
is contracted in if and only if is contracted in for
#insertAndContractNat_some_getDual?_ne_isSomeLet be a Wick contraction on indices and let be an index. Suppose is an index that is uncontracted in . Let be the Wick contraction on indices obtained by inserting and pairing it with (using the function `WickContraction.insertAndContractNat`). Let be the increasing map that skips index (defined by if and if ). For any index such that , is a contracted index in if and only if is a contracted index in .
The index paired with in is of the index paired with in for
#insertAndContractNat_some_getDual?_ne_isSome_getLet be a Wick contraction on indices and be an index. Let be an index that is uncontracted in , and let be the Wick contraction on indices obtained by inserting and pairing it with (using the function `WickContraction.insertAndContractNat c i (some j)`). Let be the increasing map that skips index (defined by if and if ). For any index such that , if is a contracted index in , then the index it is paired with in is , where is the index paired with in .
The partner of in is the shifted partner of in for
#insertAndContractNat_some_getDual?_of_neqLet be a Wick contraction on indices and be an index. Let be an index that is uncontracted in , and let be the Wick contraction on indices obtained by inserting and pairing it with (using the function ). Let be the increasing map that skips index (defined by if and if ). For any index such that , the index paired with in is the image under of the index paired with in . Specifically, where returns the partner of an index or if it is uncontracted.
Let be a Wick contraction on elements. For any index and any optional uncontracted element of , if we form a new Wick contraction on elements by inserting index and optionally contracting it with , and then subsequently erase the index from this new contraction, the result is the original contraction . Mathematically, this is expressed as: where is the operation that inserts index into and handles the optional contraction with , and is the operation that removes index and shifts the remaining indices to restore a contraction on elements.
Let be a Wick contraction on elements. Given an index and an optional uncontracted index of (where if is to remain uncontracted, and if is to be contracted with ), let be the resulting Wick contraction on elements. The theorem states that: where is the operation that identifies the index paired with in as an optional uncontracted index of the contraction . Since , the result of is identified with the original optional index via the equivalence of their respective sets of uncontracted indices.
Let be a Wick contraction on elements and be an index. Let be the Wick contraction on elements obtained by removing index from and shifting the remaining indices. Let be the partner of index in , represented as an optional uncontracted index of (which is `none` if was uncontracted in ). Then, re-inserting and contracting it with its original partner via recovers the original contraction:
Lifting a contraction to a Wick contraction with an inserted index
#insertLiftGiven a Wick contraction on elements, an index , and an optional index to be contracted with , this function maps an existing contraction (a pair of indices) to its corresponding contraction in the augmented Wick contraction on elements. Specifically, if , the function returns the pair , where is the strictly increasing map that skips .
is injective
#insertLift_injectiveLet be a Wick contraction on elements and be an insertion index. For any optional uncontracted index of , the lifting map is injective. This map sends each pair of contracted indices to the pair , where is the strictly increasing map that skips (defined by if and if ).
is surjective when no new contraction is added ()
#insertLift_none_surjectiveLet be a Wick contraction on elements and be an insertion index. Let be the Wick contraction on elements obtained by inserting index without forming a new contraction (i.e., using the `insertAndContractNat` function with ). Then the lifting map , which maps each pair to the pair in (where is the strictly increasing map that skips ), is surjective.
is bijective when no new contraction is added ()
#insertLift_none_bijectiveLet be a Wick contraction on elements and be an insertion index. Let be the Wick contraction on elements obtained by inserting the index without forming a new contraction (i.e., using the `insertAndContractNat` function with ). The lifting map , which maps each pair of contracted indices to the pair in (where is the strictly increasing map that skips ), is bijective.
The first index of a lifted Wick contraction is the shifted original first index
#insertAndContractNat_fstFieldOfContractLet be a Wick contraction on elements and be a pair in that contraction. Let be an insertion index and be an optional index from the uncontracted indices of to be paired with . Let be the strictly increasing map that skips (i.e., if and if ). Then, the first index of the lifted contraction in the new augmented Wick contraction is equal to the image of the first index of under . Mathematically, this is expressed as: where denotes the first index of a given contraction pair.
The second index of a lifted Wick contraction is the shifted original second index
#insertAndContractNat_sndFieldOfContractLet be a Wick contraction on elements and be a pair in that contraction. Let be an insertion index and be an optional index from the uncontracted indices of to be paired with . Let be the strictly increasing map that skips (defined as if and if ). Then, the second index of the lifted contraction in the new augmented Wick contraction is equal to the image of the second index of under . Mathematically, this is expressed as: where denotes the second (larger) index of a given contraction pair.
Lifting contractions to the augmented Wick contraction
#insertLiftSomeGiven a Wick contraction on elements, an insertion index , and an index that is uncontracted in , let be the augmented Wick contraction on elements obtained by contracting with (specifically, the contraction produced by `WickContraction.insertAndContractNat c i (some j)`). This function provides the mapping from the set of pairs in plus one additional element to the set of contracted pairs in . Let be the strictly increasing map that skips (i.e., if and if ). The function is defined as follows: - The element `Sum.inl ()` (representing the new contraction) maps to the pair . - An existing contraction pair (represented by `Sum.inr p`) maps to the lifted pair , where .
is injective
#insertLiftSome_injectiveLet be a Wick contraction on elements, be an insertion index, and be an uncontracted index of . Let be the strictly increasing map that skips (defined as if and if ). The lifting map , which maps the set of contracted pairs in augmented by a new element (representing the pair ) to the set of contracted pairs in the new Wick contraction on elements, is injective.
is surjective
#insertLiftSome_surjectiveLet be a Wick contraction on elements, be an insertion index, and be an index that is uncontracted in . Let be the strictly increasing map that skips (defined as if and if ). Let be the Wick contraction on elements obtained by contracting with and shifting existing pairs in via . The lifting map , which maps the set of contracted pairs in augmented by a new element to the set of contracted pairs in , is surjective.
The lifting map is bijective
#insertLiftSome_bijectiveLet be a Wick contraction on elements, be an insertion index, and be an index that is uncontracted in . Let be the strictly increasing map that skips (defined as if and if ). Let be the Wick contraction on elements obtained by contracting with and shifting existing pairs in via (specifically, the contraction produced by `WickContraction.insertAndContractNat c i (some j)`). The lifting map , which maps the set of contracted pairs in augmented by a new element (representing the pair ) to the set of contracted pairs in , is bijective.
Injectivity of inserting an uncontracted index into a Wick contraction
#insertAndContractNat_injectiveFor any natural number and any index , let be the map that takes a Wick contraction on elements and produces a Wick contraction on elements by inserting as an uncontracted index. Specifically, contains the pairs for every pair , where is the unique increasing map that skips . The map is injective.
Surjectivity of for uncontracted index
#insertAndContractNat_surjective_on_nodualFor a natural number and an index , if is a Wick contraction on elements where is uncontracted (meaning its dual is ), then there exists a Wick contraction on elements such that . The function constructs a new contraction on elements by shifting the indices of all existing pairs in to skip the index , leaving itself uncontracted.
Bijectivity of inserting an uncontracted index into a Wick contraction
#insertAndContractNat_bijectiveFor any natural number and any index , the map that takes a Wick contraction on elements and produces a Wick contraction on elements by inserting as an uncontracted index is a bijection between the set of all Wick contractions on elements and the set of Wick contractions on elements where the index is uncontracted (i.e., ). Specifically, this map shifts the existing pairs in to using the increasing map that skips , leaving without a pair.
