PhyslibSearch

Physlib.QFT.PerturbationTheory.WickContraction.InsertAndContractNat

35 declarations

definition

Insertion and optional contraction of index ii with jj into a Wick contraction cc

#insertAndContractNat

Given a Wick contraction cc on nn elements, an index i{0,,n}i \in \{0, \dots, n\}, and an optional element jj from the set of uncontracted indices of cc, the function produces a new Wick contraction on n+1n+1 elements. Let fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} be the increasing map that skips ii (i.e., fi(k)=kf_i(k) = k if k<ik < i and fi(k)=k+1f_i(k) = k+1 if kik \geq i). - If j=nonej = \text{none}, the new contraction consists of the pairs {fi(a),fi(b)}\{f_i(a), f_i(b)\} for every pair {a,b}c\{a, b\} \in c. - If j=some jj = \text{some } j', the new contraction consists of the pairs {fi(a),fi(b)}\{f_i(a), f_i(b)\} for every {a,b}c\{a, b\} \in c, plus the additional pair {i,fi(j)}\{i, f_i(j')\}.

theorem

The set of contraction pairs in `insertAndContractNat` when contracting ii with an uncontracted index jj

#insertAndContractNat_of_isSome

Let cc be a Wick contraction on nn indices and i{0,,n}i \in \{0, \dots, n\} be a target index. Let jj be an uncontracted index of cc (provided as an optional value that is not `none`). Let fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} be the increasing map that skips ii (specifically, fi(k)=kf_i(k) = k if k<ik < i and fi(k)=k+1f_i(k) = k+1 if kik \geq i). Then the set of contraction pairs in the Wick contraction on n+1n+1 indices obtained by inserting ii and contracting it with jj (via `insertAndContractNat`) is the union of: 1. The set of all pairs {fi(a),fi(b)}\{f_i(a), f_i(b)\} for every pair {a,b}\{a, b\} in the original contraction cc. 2. The new contraction pair {i,fi(j)}\{i, f_i(j)\}.

theorem

ii is uncontracted in `insertAndContractNat c i none`

#self_mem_uncontracted_of_insertAndContractNat_none

For any Wick contraction cc on nn indices and any index i{0,,n}i \in \{0, \dots, n\}, the index ii is an uncontracted index in the Wick contraction on n+1n+1 indices obtained by inserting ii into cc without forming a new contraction pair (i.e., `insertAndContractNat c i none`).

theorem

ii is not uncontracted in `insertAndContractNat c i (some j)`

#self_not_mem_uncontracted_of_insertAndContractNat_some

Let cc be a Wick contraction on nn indices. For any index i{0,,n}i \in \{0, \dots, n\} and any uncontracted index jj of cc, the index ii is not an uncontracted index in the Wick contraction on n+1n+1 indices obtained by inserting ii and contracting it with jj (i.e., the contraction produced by `insertAndContractNat c i (some j)`).

theorem

i.succAbove(j)i.\text{succAbove}(j) is uncontracted in the expanded contraction iff jj is uncontracted in the original contraction

#insertAndContractNat_succAbove_mem_uncontracted_iff

Let cc be a Wick contraction on nn indices. Let cc' be the Wick contraction on n+1n+1 indices obtained by inserting index ii and leaving it uncontracted (i.e., `insertAndContractNat c i none`). For any index j{0,,n1}j \in \{0, \dots, n-1\}, the shifted index i.succAbove(j)i.\text{succAbove}(j) is an uncontracted index in cc' if and only if jj is an uncontracted index in cc.

theorem

Uncontracted indices after inserting ii into cc without a new pair

#mem_uncontracted_insertAndContractNat_none_iff

Let cc be a Wick contraction on nn indices, and let i{0,,n}i \in \{0, \dots, n\}. Let fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} be the increasing map that skips ii, defined by fi(j)=jf_i(j) = j if j<ij < i and fi(j)=j+1f_i(j) = j + 1 if jij \geq i. An index k{0,,n}k \in \{0, \dots, n\} is uncontracted in the Wick contraction produced by `insertAndContractNat c i none` if and only if k=ik = i or k=fi(j)k = f_i(j) for some index jj that is uncontracted in cc.

theorem

Set of uncontracted indices after inserting an uncontracted index ii

#insertAndContractNat_none_uncontracted

Let cc be a Wick contraction on nn indices, and let U(c)U(c) denote the set of its uncontracted indices. For any index i{0,,n}i \in \{0, \dots, n\}, let fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} be the increasing map that skips ii, defined by fi(k)=kf_i(k) = k if k<ik < i and fi(k)=k+1f_i(k) = k+1 if kik \geq i. If a new Wick contraction on n+1n+1 indices is formed by inserting ii into cc without contracting it (denoted by `insertAndContractNat c i none`), then its set of uncontracted indices is {i}{fi(j)jU(c)}\{i\} \cup \{f_i(j) \mid j \in U(c)\}.

theorem

kk is uncontracted after inserting and contracting ii with jj iff k=fi(z)k = f_i(z) for zuncontracted(c){j}z \in \text{uncontracted}(c) \setminus \{j\}

#mem_uncontracted_insertAndContractNat_some_iff

Let cc be a Wick contraction on nn elements. Let i{0,,n}i \in \{0, \dots, n\} be an index to be inserted, and let jj be an uncontracted index of cc. Let fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} be the increasing map that skips ii (i.e., fi(z)=zf_i(z) = z if z<iz < i and fi(z)=z+1f_i(z) = z+1 if ziz \geq i). For any index k{0,,n}k \in \{0, \dots, n\}, kk is an uncontracted index of the Wick contraction formed by inserting ii and contracting it with jj if and only if k=fi(z)k = f_i(z) for some index zz that was uncontracted in cc and zjz \neq j.

theorem

Uncontracted indices after inserting and contracting ii with jj in a Wick contraction

#insertAndContractNat_some_uncontracted

Let cc be a Wick contraction on nn elements, and let U(c)U(c) denote the set of its uncontracted indices. Let i{0,,n}i \in \{0, \dots, n\} be a new index and jU(c)j \in U(c) be an index that was previously uncontracted in cc. When ii is inserted into the system and specifically contracted with jj to form a new Wick contraction on n+1n+1 elements, the set of uncontracted indices of this new contraction is obtained by removing jj from U(c)U(c) and applying the increasing map fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} (which skips the value ii) to the remaining indices. Mathematically, the new set of uncontracted indices is {fi(k)kU(c),kj}\{f_i(k) \mid k \in U(c), k \neq j\}.

theorem

The inserted index ii is uncontracted in `insertAndContractNat c i none`

#insertAndContractNat_none_getDual?_isNone

Let cc be a Wick contraction on nn indices. For any index i{0,,n}i \in \{0, \dots, n\}, let cc' be the Wick contraction on n+1n+1 indices obtained by inserting ii into cc without contracting it with any other index (i.e., using `insertAndContractNat c i none`). In the resulting contraction cc', the index ii is uncontracted.

theorem

The inserted index ii is uncontracted in `insertAndContractNat c i none`

#insertAndContractNat_none_getDual?_eq_none

Let cc be a Wick contraction on nn elements and i{0,,n}i \in \{0, \dots, n\} be an index. If we form a new Wick contraction on n+1n+1 elements by inserting the index ii without assigning it a contraction partner (using `insertAndContractNat c i none`), then the index ii is uncontracted in the resulting contraction, meaning its dual index is none\text{none}.

theorem

i.succAbove(j)i.\text{succAbove}(j) is uncontracted in `insertAndContractNat c i none` iff jj is uncontracted in cc

#insertAndContractNat_succAbove_getDual?_eq_none_iff

Let cc be a Wick contraction on nn indices. For any index i{0,,n}i \in \{0, \dots, n\}, let cc' be the Wick contraction on n+1n+1 indices obtained by inserting the index ii and leaving it uncontracted (i.e., using `insertAndContractNat c i none`). For any index j{0,,n1}j \in \{0, \dots, n-1\}, the shifted index i.succAbove(j)i.\text{succAbove}(j) is uncontracted in cc' if and only if the index jj is uncontracted in cc.

theorem

fi(j)f_i(j) is contracted in `insertAndContractNat c i none` iff jj is contracted in cc

#insertAndContractNat_succAbove_getDual?_isSome_iff

Let cc be a Wick contraction on nn elements. For any index i{0,,n}i \in \{0, \dots, n\}, let cc' be the Wick contraction on n+1n+1 elements obtained by inserting ii as an uncontracted index (using `insertAndContractNat c i none`). For any index j{0,,n1}j \in \{0, \dots, n-1\}, let fi(j)f_i(j) be the index jj shifted to skip ii (i.e., fi(j)=jf_i(j) = j if j<ij < i and fi(j)=j+1f_i(j) = j+1 if jij \geq i). Then, the index fi(j)f_i(j) is contracted in cc' if and only if the index jj is contracted in cc.

theorem

The dual of fi(j)f_i(j) in cc' is fi(dualc(j))f_i(\text{dual}_c(j)) for an uncontracted insertion of ii

#insertAndContractNat_succAbove_getDual?_get

Let cc be a Wick contraction on nn indices and i{0,,n}i \in \{0, \dots, n\} be an index. Let cc' be the Wick contraction on n+1n+1 indices obtained by inserting ii into cc and leaving ii uncontracted (i.e., c=insertAndContractNat(c,i,none)c' = \text{insertAndContractNat}(c, i, \text{none})). Let fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} be the strictly increasing map that skips ii, defined by fi(k)=kf_i(k) = k if k<ik < i and fi(k)=k+1f_i(k) = k+1 if kik \geq i. For any index j{0,,n1}j \in \{0, \dots, n-1\}, if the index fi(j)f_i(j) is contracted in cc', then its dual (the index it is paired with) in cc' is fi(k)f_i(k), where kk is the dual of jj in cc.

theorem

The dual of the inserted index ii is i.succAbove(j)i.\text{succAbove}(j)

#insertAndContractNat_some_getDual?_eq

Let cc be a Wick contraction on nn indices. Let i{0,,n}i \in \{0, \dots, n\} be an index to be inserted and jj be an uncontracted index of cc. If we form a new Wick contraction on n+1n+1 indices by inserting ii and contracting it with jj (denoted as `insertAndContractNat c i (some j)`), then the index paired with ii in this new contraction is i.succAbove(j)i.\text{succAbove}(j), where i.succAbovei.\text{succAbove} is the map that shifts indices to skip ii.

theorem

fi(k)f_i(k) is uncontracted in cc' iff kk is uncontracted in cc for kjk \neq j

#insertAndContractNat_some_getDual?_ne_none

Let cc be a Wick contraction on nn indices and let i{0,,n}i \in \{0, \dots, n\} be an index. Suppose jj is an index that is uncontracted in cc. Let cc' be the Wick contraction on n+1n+1 indices obtained by inserting ii and pairing it with jj (using the function `WickContraction.insertAndContractNat`). Let fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} be the increasing map that skips index ii (defined by fi(k)=kf_i(k) = k if k<ik < i and fi(k)=k+1f_i(k) = k+1 if kik \geq i). For any index k{0,,n1}k \in \{0, \dots, n-1\} such that kjk \neq j, fi(k)f_i(k) is an uncontracted index in cc' if and only if kk is an uncontracted index in cc.

theorem

fi(k)f_i(k) is contracted in cc' if and only if kk is contracted in cc for kjk \neq j

#insertAndContractNat_some_getDual?_ne_isSome

Let cc be a Wick contraction on nn indices and let i{0,,n}i \in \{0, \dots, n\} be an index. Suppose jj is an index that is uncontracted in cc. Let cc' be the Wick contraction on n+1n+1 indices obtained by inserting ii and pairing it with jj (using the function `WickContraction.insertAndContractNat`). Let fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} be the increasing map that skips index ii (defined by fi(k)=kf_i(k) = k if k<ik < i and fi(k)=k+1f_i(k) = k+1 if kik \geq i). For any index k{0,,n1}k \in \{0, \dots, n-1\} such that kjk \neq j, fi(k)f_i(k) is a contracted index in cc' if and only if kk is a contracted index in cc.

theorem

The index paired with fi(k)f_i(k) in cc' is fif_i of the index paired with kk in cc for kjk \neq j

#insertAndContractNat_some_getDual?_ne_isSome_get

Let cc be a Wick contraction on nn indices and i{0,,n}i \in \{0, \dots, n\} be an index. Let jj be an index that is uncontracted in cc, and let cc' be the Wick contraction on n+1n+1 indices obtained by inserting ii and pairing it with jj (using the function `WickContraction.insertAndContractNat c i (some j)`). Let fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} be the increasing map that skips index ii (defined by fi(k)=kf_i(k) = k if k<ik < i and fi(k)=k+1f_i(k) = k+1 if kik \geq i). For any index k{0,,n1}k \in \{0, \dots, n-1\} such that kjk \neq j, if fi(k)f_i(k) is a contracted index in cc', then the index it is paired with in cc' is fi(m)f_i(m), where mm is the index paired with kk in cc.

theorem

The partner of fi(k)f_i(k) in cc' is the shifted partner of kk in cc for kjk \neq j

#insertAndContractNat_some_getDual?_of_neq

Let cc be a Wick contraction on nn indices and i{0,,n}i \in \{0, \dots, n\} be an index. Let jj be an index that is uncontracted in cc, and let cc' be the Wick contraction on n+1n+1 indices obtained by inserting ii and pairing it with jj (using the function insertAndContractNat(c,i,some j)\text{insertAndContractNat}(c, i, \text{some } j)). Let fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} be the increasing map that skips index ii (defined by fi(k)=kf_i(k) = k if k<ik < i and fi(k)=k+1f_i(k) = k+1 if kik \geq i). For any index k{0,,n1}k \in \{0, \dots, n-1\} such that kjk \neq j, the index paired with fi(k)f_i(k) in cc' is the image under fif_i of the index paired with kk in cc. Specifically, getDual?c(fi(k))=Option.map(fi,getDual?c(k))\text{getDual?}_{c'}(f_i(k)) = \text{Option.map}(f_i, \text{getDual?}_c(k)) where getDual?\text{getDual?} returns the partner of an index or none\text{none} if it is uncontracted.

theorem

erase(insertAndContractNat(c,i,j),i)=c\text{erase}(\text{insertAndContractNat}(c, i, j), i) = c

#insertAndContractNat_erase

Let cc be a Wick contraction on nn elements. For any index i{0,,n}i \in \{0, \dots, n\} and any optional uncontracted element jj of cc, if we form a new Wick contraction on n+1n+1 elements by inserting index ii and optionally contracting it with jj, and then subsequently erase the index ii from this new contraction, the result is the original contraction cc. Mathematically, this is expressed as: erase(insertAndContractNat(c,i,j),i)=c\text{erase}(\text{insertAndContractNat}(c, i, j), i) = c where insertAndContractNat\text{insertAndContractNat} is the operation that inserts index ii into cc and handles the optional contraction with jj, and erase\text{erase} is the operation that removes index ii and shifts the remaining indices to restore a contraction on nn elements.

theorem

getDualErase(insertAndContractNat(c,i,j),i)=j\text{getDualErase}(\text{insertAndContractNat}(c, i, j), i) = j

#insertAndContractNat_getDualErase

Let cc be a Wick contraction on nn elements. Given an index i{0,,n}i \in \{0, \dots, n\} and an optional uncontracted index jj of cc (where j=nonej = \text{none} if ii is to remain uncontracted, and j=some jj = \text{some } j' if ii is to be contracted with jj'), let c=insertAndContractNat(c,i,j)c' = \text{insertAndContractNat}(c, i, j) be the resulting Wick contraction on n+1n+1 elements. The theorem states that: getDualErase(c,i)=j\text{getDualErase}(c', i) = j where getDualErase\text{getDualErase} is the operation that identifies the index paired with ii in cc' as an optional uncontracted index of the contraction erase(c,i)\text{erase}(c', i). Since erase(insertAndContractNat(c,i,j),i)=c\text{erase}(\text{insertAndContractNat}(c, i, j), i) = c, the result of getDualErase\text{getDualErase} is identified with the original optional index jj via the equivalence of their respective sets of uncontracted indices.

theorem

insertAndContractNat(erase(c,i),i,getDualErase(c,i))=c\text{insertAndContractNat}(\text{erase}(c, i), i, \text{getDualErase}(c, i)) = c

#erase_insert

Let cc be a Wick contraction on n+1n+1 elements and i{0,,n}i \in \{0, \dots, n\} be an index. Let erase(c,i)\text{erase}(c, i) be the Wick contraction on nn elements obtained by removing index ii from cc and shifting the remaining indices. Let getDualErase(c,i)\text{getDualErase}(c, i) be the partner of index ii in cc, represented as an optional uncontracted index of erase(c,i)\text{erase}(c, i) (which is `none` if ii was uncontracted in cc). Then, re-inserting ii and contracting it with its original partner via insertAndContractNat\text{insertAndContractNat} recovers the original contraction: insertAndContractNat(erase(c,i),i,getDualErase(c,i))=c\text{insertAndContractNat}(\text{erase}(c, i), i, \text{getDualErase}(c, i)) = c

definition

Lifting a contraction aca \in c to a Wick contraction with an inserted index ii

#insertLift

Given a Wick contraction cc on nn elements, an index i{0,,n}i \in \{0, \dots, n\}, and an optional index jj to be contracted with ii, this function maps an existing contraction (a pair of indices) aca \in c to its corresponding contraction in the augmented Wick contraction on n+1n+1 elements. Specifically, if a={u,v}a = \{u, v\}, the function returns the pair {fi(u),fi(v)}\{f_i(u), f_i(v)\}, where fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} is the strictly increasing map that skips ii.

theorem

insertLift\text{insertLift} is injective

#insertLift_injective

Let cc be a Wick contraction on nn elements and i{0,,n}i \in \{0, \dots, n\} be an insertion index. For any optional uncontracted index jj of cc, the lifting map insertLifti:c(c.insertAndContractNat(i,j))\text{insertLift}_i : c \to (c.\text{insertAndContractNat}(i, j)) is injective. This map sends each pair of contracted indices {u,v}c\{u, v\} \in c to the pair {fi(u),fi(v)}\{f_i(u), f_i(v)\}, where fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} is the strictly increasing map that skips ii (defined by fi(k)=kf_i(k) = k if k<ik < i and fi(k)=k+1f_i(k) = k+1 if kik \geq i).

theorem

insertLift\text{insertLift} is surjective when no new contraction is added (j=nonej = \text{none})

#insertLift_none_surjective

Let cc be a Wick contraction on nn elements and i{0,,n}i \in \{0, \dots, n\} be an insertion index. Let cc' be the Wick contraction on n+1n+1 elements obtained by inserting index ii without forming a new contraction (i.e., using the `insertAndContractNat` function with j=nonej = \text{none}). Then the lifting map insertLifti:cc\text{insertLift}_i : c \to c', which maps each pair {u,v}c\{u, v\} \in c to the pair {fi(u),fi(v)}\{f_i(u), f_i(v)\} in cc' (where fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} is the strictly increasing map that skips ii), is surjective.

theorem

insertLift\text{insertLift} is bijective when no new contraction is added (j=nonej = \text{none})

#insertLift_none_bijective

Let cc be a Wick contraction on nn elements and i{0,,n}i \in \{0, \dots, n\} be an insertion index. Let cc' be the Wick contraction on n+1n+1 elements obtained by inserting the index ii without forming a new contraction (i.e., using the `insertAndContractNat` function with j=nonej = \text{none}). The lifting map insertLifti:cc\text{insertLift}_i : c \to c', which maps each pair of contracted indices {u,v}c\{u, v\} \in c to the pair {fi(u),fi(v)}\{f_i(u), f_i(v)\} in cc' (where fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} is the strictly increasing map that skips ii), is bijective.

theorem

The first index of a lifted Wick contraction is the shifted original first index

#insertAndContractNat_fstFieldOfContract

Let cc be a Wick contraction on nn elements and aca \in c be a pair in that contraction. Let i{0,,n}i \in \{0, \dots, n\} be an insertion index and jj be an optional index from the uncontracted indices of cc to be paired with ii. Let fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} be the strictly increasing map that skips ii (i.e., fi(k)=kf_i(k) = k if k<ik < i and fi(k)=k+1f_i(k) = k+1 if kik \geq i). Then, the first index of the lifted contraction insertLift(i,j,a)\text{insertLift}(i, j, a) in the new augmented Wick contraction is equal to the image of the first index of aa under fif_i. Mathematically, this is expressed as: fstFieldOfContract(insertLift(i,j,a))=fi(fstFieldOfContract(a))\text{fstFieldOfContract}(\text{insertLift}(i, j, a)) = f_i(\text{fstFieldOfContract}(a)) where fstFieldOfContract\text{fstFieldOfContract} denotes the first index of a given contraction pair.

theorem

The second index of a lifted Wick contraction is the shifted original second index

#insertAndContractNat_sndFieldOfContract

Let cc be a Wick contraction on nn elements and aca \in c be a pair in that contraction. Let i{0,,n}i \in \{0, \dots, n\} be an insertion index and jj be an optional index from the uncontracted indices of cc to be paired with ii. Let fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} be the strictly increasing map that skips ii (defined as fi(k)=kf_i(k) = k if k<ik < i and fi(k)=k+1f_i(k) = k+1 if kik \geq i). Then, the second index of the lifted contraction insertLift(i,j,a)\text{insertLift}(i, j, a) in the new augmented Wick contraction is equal to the image of the second index of aa under fif_i. Mathematically, this is expressed as: sndFieldOfContract(insertLift(i,j,a))=fi(sndFieldOfContract(a))\text{sndFieldOfContract}(\text{insertLift}(i, j, a)) = f_i(\text{sndFieldOfContract}(a)) where sndFieldOfContract\text{sndFieldOfContract} denotes the second (larger) index of a given contraction pair.

definition

Lifting contractions to the augmented Wick contraction c{i,fi(j)}c \cup \{i, f_i(j)\}

#insertLiftSome

Given a Wick contraction cc on nn elements, an insertion index i{0,,n}i \in \{0, \dots, n\}, and an index jj that is uncontracted in cc, let cc' be the augmented Wick contraction on n+1n+1 elements obtained by contracting ii with jj (specifically, the contraction produced by `WickContraction.insertAndContractNat c i (some j)`). This function provides the mapping from the set of pairs in cc plus one additional element to the set of contracted pairs in cc'. Let fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} be the strictly increasing map that skips ii (i.e., fi(k)=kf_i(k) = k if k<ik < i and fi(k)=k+1f_i(k) = k+1 if kik \geq i). The function is defined as follows: - The element `Sum.inl ()` (representing the new contraction) maps to the pair {i,fi(j)}\{i, f_i(j)\}. - An existing contraction pair pcp \in c (represented by `Sum.inr p`) maps to the lifted pair {fi(u),fi(v)}\{f_i(u), f_i(v)\}, where {u,v}=p\{u, v\} = p.

theorem

insertLiftSomei,j\text{insertLiftSome}_{i,j} is injective

#insertLiftSome_injective

Let cc be a Wick contraction on nn elements, i{0,,n}i \in \{0, \dots, n\} be an insertion index, and jj be an uncontracted index of cc. Let fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} be the strictly increasing map that skips ii (defined as fi(k)=kf_i(k) = k if k<ik < i and fi(k)=k+1f_i(k) = k+1 if kik \geq i). The lifting map insertLiftSomei,j\text{insertLiftSome}_{i,j}, which maps the set of contracted pairs in cc augmented by a new element (representing the pair {i,fi(j)}\{i, f_i(j)\}) to the set of contracted pairs in the new Wick contraction on n+1n+1 elements, is injective.

theorem

insertLiftSomei,j\text{insertLiftSome}_{i,j} is surjective

#insertLiftSome_surjective

Let cc be a Wick contraction on nn elements, i{0,,n}i \in \{0, \dots, n\} be an insertion index, and jj be an index that is uncontracted in cc. Let fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} be the strictly increasing map that skips ii (defined as fi(k)=kf_i(k) = k if k<ik < i and fi(k)=k+1f_i(k) = k+1 if kik \geq i). Let cc' be the Wick contraction on n+1n+1 elements obtained by contracting ii with fi(j)f_i(j) and shifting existing pairs in cc via fif_i. The lifting map insertLiftSomei,j\text{insertLiftSome}_{i,j}, which maps the set of contracted pairs in cc augmented by a new element to the set of contracted pairs in cc', is surjective.

theorem

The lifting map insertLiftSomei,j\text{insertLiftSome}_{i,j} is bijective

#insertLiftSome_bijective

Let cc be a Wick contraction on nn elements, i{0,,n}i \in \{0, \dots, n\} be an insertion index, and jj be an index that is uncontracted in cc. Let fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} be the strictly increasing map that skips ii (defined as fi(k)=kf_i(k) = k if k<ik < i and fi(k)=k+1f_i(k) = k+1 if kik \geq i). Let cc' be the Wick contraction on n+1n+1 elements obtained by contracting ii with fi(j)f_i(j) and shifting existing pairs in cc via fif_i (specifically, the contraction produced by `WickContraction.insertAndContractNat c i (some j)`). The lifting map insertLiftSomei,j\text{insertLiftSome}_{i,j}, which maps the set of contracted pairs in cc augmented by a new element (representing the pair {i,fi(j)}\{i, f_i(j)\}) to the set of contracted pairs in cc', is bijective.

theorem

Injectivity of inserting an uncontracted index into a Wick contraction

#insertAndContractNat_injective

For any natural number nn and any index i{0,,n}i \in \{0, \dots, n\}, let Φi\Phi_i be the map that takes a Wick contraction cc on nn elements and produces a Wick contraction on n+1n+1 elements by inserting ii as an uncontracted index. Specifically, Φi(c)\Phi_i(c) contains the pairs {fi(a),fi(b)}\{f_i(a), f_i(b)\} for every pair {a,b}c\{a, b\} \in c, where fi:{0,,n1}{0,,n}f_i: \{0, \dots, n-1\} \to \{0, \dots, n\} is the unique increasing map that skips ii. The map Φi\Phi_i is injective.

theorem

Surjectivity of insertAndContractNat\text{insertAndContractNat} for uncontracted index ii

#insertAndContractNat_surjective_on_nodual

For a natural number nn and an index i{0,,n}i \in \{0, \dots, n\}, if cc is a Wick contraction on n+1n+1 elements where ii is uncontracted (meaning its dual c.getDual?(i)c.\text{getDual?}(i) is none\text{none}), then there exists a Wick contraction cc' on nn elements such that c=insertAndContractNat(c,i,none)c = \text{insertAndContractNat}(c', i, \text{none}). The function insertAndContractNat(c,i,none)\text{insertAndContractNat}(c', i, \text{none}) constructs a new contraction on n+1n+1 elements by shifting the indices of all existing pairs in cc' to skip the index ii, leaving ii itself uncontracted.

theorem

Bijectivity of inserting an uncontracted index into a Wick contraction

#insertAndContractNat_bijective

For any natural number nn and any index i{0,,n}i \in \{0, \dots, n\}, the map that takes a Wick contraction cc on nn elements and produces a Wick contraction on n+1n+1 elements by inserting ii as an uncontracted index is a bijection between the set of all Wick contractions on nn elements and the set of Wick contractions on n+1n+1 elements where the index ii is uncontracted (i.e., c.getDual?(i)=nonec.\text{getDual?}(i) = \text{none}). Specifically, this map Φi(c)=insertAndContractNat(c,i,none)\Phi_i(c) = \text{insertAndContractNat}(c, i, \text{none}) shifts the existing pairs {a,b}\{a, b\} in cc to {fi(a),fi(b)}\{f_i(a), f_i(b)\} using the increasing map fif_i that skips ii, leaving ii without a pair.