The discrete Fourier transform of a pitch-class set #
A pitch-class set A β β€/12 is represented by its 0/1 indicator ind A : ZMod 12 β β, and its
Fourier transform is Mathlib's ZMod.dft of the indicator: Ahat A = π (ind A), so
Ahat A t = β a β A, exp (-2Οi a t / 12). This file proves the classical invariants of
pitch-class set theory in terms of Ahat, ordered by how much of the phase of Ahat they use.
Main results #
Ahat_zero,Ahat_tpose,Ahat_compl:Ahat A 0 = #A; transposition multiplies by a character; complementation negates every nonzero coefficient.autocorr_eq_invDFT,IVraw_eq_invDFT_power: the autocorrelation, hence the interval vector, is the inverse transform of the power spectrumβAhat AβΒ².homometric_iff_powerSpec_eq: two sets are homometric (Z-related) iff they have the same power spectrum.hexachord_IVraw_eq_nat: Babbitt's hexachord theorem.commonTonesInv_eq_sumcorr,sumcorr_eq_invDFT: common tones under inversion are a function ofAhat A ^ 2.carterPair_triple_distinct: the triple correlation separates a homometric pair.Ahat_injective,Ahat_eq_iff:Ahatis a complete invariant.tpose_iff_Ahat_ramp,inv_iff_Ahat_conj_ramp,setClass_iff_Ahat_mod_phase: transposition and inversion classes in terms ofAhat.IsDeep_iff_commonTones_nodup,diatonic_isDeep: deep scales.
References #
- E. Amiot, Music Through Fourier Space, Springer (2016).
- C. MarΓn, The phase taxonomy of pitch-class set invariants, Zenodo (2026), doi:10.5281/zenodo.20826773.
- C. MarΓn, The Tonnetz spectrum is the generating triad's Fourier balance profile, Zenodo (2026), doi:10.5281/zenodo.20862821.
The DFT of a pc-set: Γ A t = Ξ£_{a β A} exp(β2ΟiΒ·aΒ·t/12).
Equations
Instances For
Γ A t is the sum of stdAddChar(β(aΒ·t)) over a β A (indicator collapses the sum to A).
The DFT of the all-ones indicator vanishes off 0: π (fun _ => 1) t = 0 for t β 0.
The circle character is unitary: conj (stdAddChar x) = stdAddChar (βx).
The power spectrum |Γ A|Β² = Γ A Β· conj (Γ A), as a function ZMod 12 β β.
Equations
Instances For
The power spectrum expanded as a double sum over A Γ A.
Step 3 β THE BRIDGE. The ordered interval-difference count is the inverse DFT of the
power spectrum (WienerβKhinchin / autocorrelation theorem), as complex numbers:
#{(a,b)βAΓA : aβb=d} = πβ»(|Γ A|Β²) d.
The keystone: interval vector = inverse DFT of the power spectrum. #
Raw (ordered) interval vector (= IntervalVector.IVraw).
Equations
- MusicTheory.Fourier.IVraw A k = β a β A, β b β A, if MusicTheory.Fourier.ivc (a - b) = k then 1 else 0
Instances For
Keystone (B.1 β D.1). The raw interval vector is the inverse DFT of the power spectrum,
summed over each interval class: IVraw A k = Ξ£_{ivc d = k} πβ»(|Γ A|Β²) d.
O.1 β The common-tone theorem under transposition (rides on autocorr). #
commonTones A k = number of pitch classes held fixed when A is transposed by k, i.e.
#(A β© Tβ A). Lewin's ordered interval function makes this the autocorrelation:
commonTones A k = #{(a,b)βAΓA : aβb=k} = autocorr A k, hence = πβ»(|Γ A|Β²) k (via Step 3).
The relation to the interval vector carries the tritone doubling: the ivc-fibre is a doubleton
{k,βk} for 1β€kβ€5 (β IVraw A k = 2Β·commonTones A k) but a singleton {6} at the tritone
(β IVraw A 6 = commonTones A 6 β the Tβ fixed point, same central element as the 6-30 finding).
The pitch classes of A held fixed under transposition by k: #(A β© Tβ A).
Equations
- MusicTheory.Fourier.commonTones A k = (A β© MusicTheory.Fourier.tpose k A).card
Instances For
Common tones as a filtered cardinality: {x β A : x β k β A}.
O.1 master identity. Held tones under Tβ = the ordered autocorrelation at k.
O.1, Fourier form. Held tones under Tβ are the inverse DFT of the power spectrum:
#(A β© Tβ A) = πβ»(|Γ A|Β²) k.
At k = 0 everything is held: commonTones A 0 = |A|.
O.1 interval-vector bridge, generic class. For 1 β€ k β€ 5 the raw interval vector is
twice the common-tone count: IVraw A k = 2 Β· commonTones A k (each unordered interval
counted both ways). Equivalently commonTones A k = ICV[k] for the textbook ICV = IVraw/2.
O.1 tritone anomaly. At k = 6 the fibre is a singleton, so there is NO factor 2:
IVraw A 6 = commonTones A 6. Since textbook ICV[6] = IVraw A 6 / 2, this is the famous
commonTones A 6 = 2 Β· ICV[6] doubling β Tβ fixes a note onto itself.
The interval vector is the power spectrum folded over conjugate pairs. #
The object {k,βk} that indexes the interval-vector fibres here (ivc_fibre_lt) is the SAME object
that indexes the dihedral blocks of the T/I action in the DFT basis β InversionDFT.conjPair k
(= InversionDFT.block k's spanning frequencies). This block welds the invariant-theory side (this
file, Note #2) to the representation-theory side (InversionDFT.lean, Note #3): both are functions on,
or folds over, the inversion quotient β€ββ/(kβΌβk). The fresh content is powerSpec_neg β that the
power spectrum is constant on each conjugate pair, hence descends to that quotient β which is exactly
why homometry (homometric_iff_powerSpec_eq) is equality of a function on the conjugate pairs. The
literal cross-file identity ivc_fibre_lt k = InversionDFT.conjPair k is left to the de-dup cleanup.
The DFT of a real pc-set is Hermitian: Γ(βt) = conj(Γ(t)). Each term stdAddChar(-(aΒ·(βt)))
is the conjugate of stdAddChar(-(aΒ·t)) (conj_stdAddChar).
The power spectrum is constant on conjugate pairs: |Γ|Β²(βt) = |Γ|Β²(t). Since Γ is
Hermitian (Ahat_neg), powerSpec descends to the inversion quotient β€ββ/(tβΌβt) β the conjugate
pairs {t,βt} that also index the dihedral blocks (InversionDFT.conjPair). The "lives on the
quotient" fact behind both the interval vector and the block decomposition.
The interval vector is the power spectrum folded over the conjugate pair.
For 1 β€ k β€ 5, IVraw A k = πβ»(|Γ|Β²)(k) + πβ»(|Γ|Β²)(βk) β the inverse DFT of the power spectrum
summed over the conjugate pair {k,βk} (= InversionDFT.conjPair k = the dihedral block index).
With powerSpec_neg the two summands coincide, recovering IVraw = 2Β·commonTones. One object β
the conjugate pair β behind the interval vector (Note #2) and the dihedral blocks (Note #3).
L.4 β Deep scales (rides on IVraw). #
A pitch-class set is deep when its interval-class multiplicities are all distinct. Via O.1 those multiplicities are exactly the transposition common-tone counts (doubled off the tritone), so a deep scale is one where every transposition shares a different number of notes with the original β the property that makes the diatonic scale a maximally-articulated reference (Gamer 1967, Browne 1981). This formalizes the definition and its witnesses, not new mathematics; in particular the chromatic aggregate is NOT deep, correcting a common misconception.
O.1 reading of deepness. The interval-vector entries ARE the transposition common-tone counts,
doubled on classes 1..5 and taken raw at the tritone 6 (the Tβ fixed-point doubling).
Deepness in common-tone terms. A scale is deep iff the six counts
2Β·#(Aβ©TβA), β¦, 2Β·#(Aβ©Tβ
A), #(Aβ©TβA) are all distinct.
The chromatic aggregate β€ββ is NOT deep: IVraw = [24,24,24,24,24,12], so the multiplicities are not distinct β deep β "uses all intervals".
(Not checked here.)
Step 4 β Babbitt's hexachord theorem (B.2) as a DFT corollary. #
Step 4 (Babbitt B.2). A hexachord and its complement have equal Fourier magnitude away
from t = 0: |A| = 6 β β t β 0, βΓ A tβ = βΓ AαΆ tβ. Since IVraw is determined by the
power spectrum (IVraw_eq_invDFT_power), and the power spectrum is βΓΒ·βΒ², this gives A and
AαΆ the same interval vector β Babbitt's hexachord theorem.
A hexachord and its complement have the same power spectrum at every frequency β not just
off t = 0 (hexachord_powerSpec_eq): at t = 0 both equal |A|Β² = |AαΆ|Β² = 36.
Babbitt's hexachord theorem (B.2 capstone). A hexachord and its complement have the
same interval vector: IVraw A k = IVraw AαΆ k for every interval class k. The interval
vector is the inverse DFT of the power spectrum (IVraw_eq_invDFT_power), and a hexachord shares
its full power spectrum with its complement (hexachord_powerSpec_eq_all) β so the interval
content is forced to agree. (Babbitt 1955 / Lewin 1959.)
P1 β Homometry and the crystallographic phase problem (rides on autocorr_eq_invDFT). #
Two pc-sets are homometric when they share the same autocorrelation autocorr. In crystallography
that autocorrelation is the Patterson function (Patterson 1934) and |Γ|Β² is the X-ray diffraction
intensity (structure factor). The theorem below is the discrete phase problem: the Patterson function
determines, and is determined by, the power spectrum |Γ|Β² (WienerβKhinchin, autocorr_eq_invDFT) β but
NOT the phase of Γ, so distinct sets can share a diffraction pattern. In music this is exactly the
Z-relation: same interval content, not T/I-related. Refs: Patterson (1934); Lewin / Soderberg
("homometry"); MandereauβAndreattaβAmiotβAgon, J.Math&Music 5(2) 2011 (Z-relation β Patterson).
The Patterson function of a pc-set = its (ordered) autocorrelation.
Equations
Instances For
Two pc-sets are homometric iff they have the same autocorrelation / Patterson function (equivalently, the same directed interval content).
Equations
- MusicTheory.Fourier.Homometric A B = β (d : ZMod 12), MusicTheory.Fourier.autocorr A d = MusicTheory.Fourier.autocorr B d
Instances For
P1 β the discrete phase problem. Two pc-sets are homometric iff they have the same power
spectrum |Γ|Β². Autocorrelation and diffraction intensity determine each other (WienerβKhinchin);
the information lost β what homometry cannot see β is the PHASE of Γ.
P1, crystallographic form. Homometric βΊ equal diffraction intensity |Γ|Β² (the structure
factor normSq Γ) at every frequency. The phase of Γ is invisible to this data.
The classic Z-related / homometric pair: the all-interval tetrachords 4-Z15 {0,1,4,6} and
4-Z29 {0,1,3,7} share the autocorrelation [4,1,1,1,1,1,2,1,1,1,1,1],
yet are not T/I-related β same diffraction, different phase.
P2 β The phase-taxonomy capstone: the FULL DFT is a complete invariant. #
The whole "phase taxonomy" of pc-set invariants organizes around exactly how much of Γ each
invariant retains:
β’ |Γ|Β² (= powerSpec = autocorrelation = interval vector, B.1/D.1) is phase-BLIND and
therefore NOT a complete invariant β homometry collapses it: distinct sets share it
(allIntervalTetrachords_homometric, the all-interval tetrachords {0,1,4,6}β{0,1,3,7}).
β’ ΓΒ² (= sqSpec = the sum/index vector, O.2) retains some phase β enough to split that
homometric pair (sumVector_distinguishes_homometric) β but still not all of it.
β’ The FULL Γ (magnitude AND phase) IS a complete invariant: it determines the pc-set
exactly (Ahat_injective below). The phase carries precisely the information |Γ| discards.
This is the capstone of the taxonomy. It is not new mathematics: DFT
injectivity is classical (the transform is a LinearEquiv, ZMod.dft); the contribution is the
organization β pinning each invariant to its slice of Γ and machine-checking the completeness
boundary that homometry sits just below.
P2 β the complete-invariant capstone. The full DFT Γ determines the pitch-class SET
exactly: Γ A = Γ B β A = B. The transform ZMod.dft is a LinearEquiv (hence injective),
and the indicator recovers the set, so the phase of Γ is exactly the data that completes the
interval vector to a total invariant.
The common-tone theorem under INVERSION (the sum / index vector) #
Where the previous section counts tones held under transposition Tβ (the difference pairing aβb, governed by the
interval vector / |Γ|Β², phase-blind), this one counts tones held under inversion I_j(x) = j β x β the
sum pairing a+aβ², governed by the sum (index) vector ISUM. Its transform is Γ(t)Β² (the
coefficient SQUARED, not |Γ|Β²), so ISUM is phase-DEPENDENT: it sees exactly the phase that
homometry / the Z-relation (|Γ|Β²) cannot. Combinatorial identity is classical (Lewin, GMIT 1987;
Rahn, Basic Atonal Theory 1980); the "phase β pitch-class sum" intuition is TymoczkoβYust (MCM 2019,
under transposition β a different theorem). Unlike O.1's interval
vector there is no tritone factor-2: ISUM counts the ordered pair (a, jβa) directly, the held
axis tone x (2x = j, even j) contributing the diagonal pair (x,x) exactly once.
Inversion image I_j A = {j β a : a β A} (axis j/2).
Equations
- MusicTheory.Fourier.inv j A = Finset.map { toFun := fun (x : ZMod 12) => j - x, inj' := β― } A
Instances For
Pitch classes of A held fixed under inversion I_j: #(A β© I_j A).
Equations
Instances For
The sum spectrum: the SQUARE of the coefficient (not its squared magnitude).
Equations
Instances For
The sum spectrum expanded as a double sum over A Γ A.
Common tones under I_j as a filtered cardinality: {x β A : j β x β A}.
O.2 master identity. Held tones under I_j = the sum (index) vector at j:
#(A β© I_j A) = #{(a,b) β AΓA : a + b = j}. (Lewin/Rahn.)
O.2, the phase-dependent Fourier form. The sum vector is the inverse DFT of the SQUARED
coefficient: #{(a,b)βAΓA : a+b=j} = πβ»(Γ A Β²) j. Where O.1's |Γ|Β² discards the phase,
here the phase survives β this is why ISUM distinguishes some homometric sets.
O.2, Fourier form. Held tones under I_j are the inverse DFT of ΓΒ²: #(A β© I_j A) = πβ»(Γ A Β²) j.
Phase visibility (the headline). The homometric pair 4-Z15 {0,1,4,6} / 4-Z29 {0,1,3,7}
share the interval vector (allIntervalTetrachords_homometric, i.e. equal |Γ|Β²), yet the
inversional common-tone count tells them apart: about axis j = 0 one holds 2 tones, the other 1.
The sum/index vector (ΓΒ²) sees the phase the interval vector (|Γ|Β²) cannot.
Rhythmic Oddity Property (ChemillierβTruchet 2003) #
A cyclic rhythm A β β€β has the Rhythmic Oddity Property when it cannot be split into two arcs of
equal length β equivalently (for n = 12, n/2 = 6) no two onsets are antipodal (differ by the
tritone 6). This is the SAME Tβ central element as the 6-30 finding and the tritone factor in O.1:
ROP βΊ the autocorrelation / interval-vector entry at the tritone vanishes.
N.1 β ROP. A has the Rhythmic Oddity Property iff it is disjoint from its tritone-transpose,
i.e. no onset has an antipode (a partner 6 apart).
Equations
Instances For
ROP βΊ no tones are held under the tritone transposition Tβ.
Lopsidedness bound (pigeonhole). ROP forces at most n/2 = 6 onsets: A and its disjoint
tritone-copy Tβ A have equal size and together fit inside β€ββ, so 2|A| β€ 12.
Corollary: no 7-subset of β€ββ is ROP.
Set-class completeness: the T/I-orbit βΊ DFT-up-to-phase characterization. #
That no two of the 224 T/I orbits share their DFT up to phase is here a
THEOREM over all of ZMod 12. The point: membership of B in the T/I-orbit of A (B = Tβ A
for some k, or B = I_j A for some j) is EXACTLY the statement that BΜ equals Γ up to a
transposition phase ramp stdAddChar(βkΒ·t), or up to conjugation-plus-ramp. The forward maps are
the existing Ahat_tpose / Ahat_inv; injectivity (Ahat_injective) supplies the converses. The
completeness of the set-class fingerprint thus follows from DFT injectivity, not from enumeration.
Inversion analog of Ahat_tpose. Γ (I_j A) t = stdAddChar(βjΒ·t) Β· conj(Γ A t). The
conjugate appears because I_j reflects the sum, turning stdAddChar(β(aΒ·t)) into
stdAddChar(aΒ·t) = conj(stdAddChar(β(aΒ·t))).
Transposition βΊ DFT ramp. B = Tβ A iff BΜ = stdAddChar(βkΒ·t) Β· Γ A pointwise.
Forward is Ahat_tpose; backward is Ahat_injective.
Inversion βΊ conjugated DFT ramp. B = I_j A iff BΜ = stdAddChar(βjΒ·t) Β· conj(Γ A)
pointwise. Forward is Ahat_inv; backward is Ahat_injective.
Set-class completeness, the headline. B lies in the T/I-orbit of A
(B = Tβ A for some k, or B = I_j A for some j) IFF its DFT BΜ equals Γ up to a
transposition ramp, or up to conjugation-plus-ramp. The set-class fingerprint is therefore a
COMPLETE invariant of the orbit β the "0 collisions" computation made into a theorem over all
of ZMod 12, with DFT injectivity (Ahat_injective) as the engine.
The real-space TRIPLE CORRELATION: the missing middle row of the taxonomy. #
The phase taxonomy so far has a 2nd-order row (|Γ|Β² = interval vector = autocorrelation, phase-blind,
collapsed by homometry) and the full-Γ capstone (complete invariant, all phase). The triple
correlation triple A j k = #{x : x, xβj, xβk β A} is the missing middle row: a 3rd-order,
phase-blind (built from real-space membership only), transposition-invariant statistic whose
Fourier dual is the bispectrum Γ(tβ)Β·Γ(tβ)Β·conj Γ(tβ+tβ). Crucially it resolves homometry:
it tells apart the all-interval tetrachords 4-Z15 {0,1,4,6} / 4-Z29 {0,1,3,7} that |Γ|Β² cannot
(carterPair_triple_distinct). It is genuinely finer than the interval vector yet still a real,
combinatorial, transposition-invariant object β the classical reason the triple correlation /
bispectrum reconstructs a signal up to translation where the power spectrum fails. It is not
inversion-invariant (triple_not_inversionInvariant), so it sits strictly between the T-orbit and the
full T/I data: folded by inversion it would complete to a T/I invariant. Refs: the 3-deck / triple
correlation of combinatorics; bispectral reconstruction (Tukey); Amiot's DFT-of-pc-sets program.
The triple correlation of a pc-set: the number of pitch classes x with x, xβj, xβk
all in A (real-space 3-deck). Equivalently #(A β© Tβ±Ό A β© Tβ A) since x β Tβ±Ό A β xβj β A.
Equations
- MusicTheory.Fourier.triple A j k = (A β© MusicTheory.Fourier.tpose j A β© MusicTheory.Fourier.tpose k A).card
Instances For
Transposition invariance. The triple correlation is unchanged when the whole
set is transposed: triple (Tβ A) j k = triple A j k. (Tβ commutes with Tβ±Ό/Tβ and
distributes over β©, then card is map-invariant.) This is the defining feature: a 3rd-order
statistic that, like the interval vector, is blind to absolute transposition.
Homometry resolution. The triple correlation distinguishes the all-interval
tetrachords 4-Z15 {0,1,4,6} and 4-Z29 {0,1,3,7}, which are homometric
(allIntervalTetrachords_homometric: equal interval vector |Γ|Β²) yet NOT T/I-related. At
(j,k) = (1,6) the first holds 0, the second 1 β the 3rd-order statistic sees what the
2nd-order |Γ|Β² is blind to. This is the Z-relation broken by the bispectrum.
Not inversion-invariant. The triple correlation distinguishes a set from its
inversion Iβ A = inv 0 A: at A = {0,1,4,6}, (j,k) = (1,4), A holds 0 but Iβ A holds
1. So triple is strictly finer than a T/I invariant β it lives between the T-orbit and the
full T/I data; folding it by inversion would complete it to a T/I-complete object.
Parity marginals of the index vector are phase-blind #
The per-frequency index vector sumcorr A j = ISUM is phase-AWARE: its transform is ΓΒ² (sqSpec),
so it splits homometric pairs (sumVector_distinguishes_homometric). A refinement:
its parity marginals β the partial sums over even j and over odd j β are PHASE-BLIND, i.e.
functions of |Γ|Β² (powerSpec) alone. The mechanism is the recurring {0,6} 2-torsion (inversion-
fixed frequencies): Ξ£_{j even} f(j) = Β½(Ξ£_j f(j) + Ξ£_j (β1)Κ² f(j)), and for f = πβ»(sqSpec) the two
character sums collapse to sqSpec 0 = |A|Β² and sqSpec 6 = Γ(6)Β²; since Γ(6) is real (6 = β6),
Γ(6)Β² = |Γ(6)|Β² = powerSpec 6. So the marginals see only |Γ|Β² at the inversion-fixed t β {0,6}.
Combinatorially the same fact is the parity bridge a+b even βΊ a,b same parity βΊ aβb even, so the
even/odd marginal of the SUM count equals the even/odd marginal of the DIFFERENCE count (autocorrelation,
the canonical phase-blind statistic).
A marginal of autocorr over a difference set D counts the ordered pairs whose DIFFERENCE lands
in D: Ξ£_{dβD} autocorr A d = #{(a,b)βAΒ² : aβb β D}.
Parity marginal = autocorrelation marginal (even). The even-j marginal of the index vector
equals the even-d marginal of the autocorrelation β the sum count and the difference count agree
on each parity class (a+b even βΊ aβb even).
ID-8 (odd marginal, the β form). The odd-index marginal of the index vector folds onto the
short autocorrelation classes: Ξ£_{jβ{1,3,5,7,9,11}} sumcorr A j = 2Β·(cβ+cβ+cβ
) where cβ = autocorr A k. (autocorr_neg: cβ=cβ
, cβ=cβ, cββ=cβ.)
ID-7 (even marginal, the β form). The even-index marginal: Ξ£_{jβ{0,2,4,6,8,10}} sumcorr A j = |A| + 2Β·(cβ+cβ) + cβ where cβ = autocorr A k. The lone |A| is the diagonal cβ = |A|
and the lone cβ is the tritone self-fixed class (6 = β6), both 2-torsion β the same {0,6}.
The phase-blind β-form (THE PAYLOAD): marginals = (|Γ(0)|Β² Β± |Γ(6)|Β²)/2. #
The even/odd marginals depend ONLY on powerSpec (= |Γ|Β²) at the inversion-fixed frequencies 0
and 6 β even though the per-j index vector itself is phase-aware. Proved via the DFT route on
sumcorr_eq_invDFT: summing πβ»(sqSpec) against the even/odd parity sets picks out exactly sqSpec 0
and sqSpec 6, and Γ(6) is real so sqSpec 6 = Γ(6)Β² = |Γ(6)|Β² = powerSpec 6.
Γ(6) is real: conj (Γ A 6) = Γ A 6. Because 6 = β6 in β€ββ, the inversion-fixed frequency
is its own conjugate (stdAddChar(β(aΒ·6)) is Β±1). This is the {0,6} 2-torsion made analytic.
The even and odd index sets PARTITION β€ββ (their disjoint union is the universe).
powerSpec as the FORWARD DFT of the autocorrelation: powerSpec A t = Ξ£_d stdAddChar(β(dΒ·t))Β·c(d)
(apply π to autocorr_eq_invDFT; πβπβ» = id).
The tritone character value: stdAddChar (6 : β€ββ) = exp(Οi) = β1. The analytic root of the
(β1)α΅ sign that makes frequency 6 a parity detector.
powerSpec A 6 is the SIGNED pair count Ξ£_d (β1)α΅ c(d) = Ξ£_even c β Ξ£_odd c (forward DFT at the
inversion-fixed tritone frequency 6; stdAddChar(β6d) = (β1)α΅).
The phase-blind payload (even, β-form). The even-index marginal of the index vector equals
(|Γ(0)|Β² + |Γ(6)|Β²)/2 = (powerSpec 0 + powerSpec 6)/2. It is a function of |Γ|Β² alone β at the
inversion-fixed frequencies {0,6} β even though sumcorr per-j is phase-aware.
The phase-blind payload (odd, β-form). The odd-index marginal equals
(|Γ(0)|Β² β |Γ(6)|Β²)/2 = (powerSpec 0 β powerSpec 6)/2. Again |Γ|Β² at {0,6} only.
The punchline witness: per-j index vectors DIFFER (phase-aware), marginals AGREE (phase-blind). #
The homometric Z-pair 4-Z15 {0,1,4,6} and 4-Z29 {0,1,3,7} are NOT T/I-related; their index vectors
sumcorr differ at individual j (sumVector_distinguishes_homometric β that is why ΓΒ² resolves the
Z-relation). Yet their PARITY MARGINALS coincide β the phase-collapse made concrete.