diff --git a/notes/arbitrary-period-balance-consistency-20260912.md b/notes/arbitrary-period-balance-consistency-20260912.md new file mode 100644 index 00000000..696e1d52 --- /dev/null +++ b/notes/arbitrary-period-balance-consistency-20260912.md @@ -0,0 +1,210 @@ +# Matching balance on arbitrary integer-period tori + +2026-09-12. Completed proof continuation of #718/#732 and #276/#613. +The result concerns **balance roots and conditional rank odds**, not the full +birth-time mixture. It does not assert a new value, a near-critical rate, an +all-width transfer representation, or publication novelty. + +## 1. Statement and external inputs + +Let Lambda be any rank-two sublattice of Z^2. Put + + N = [Z^2:Lambda], ell = min{|u|_2: 0 != u in Lambda}. + +On the occupied square-site NN quotient, let r be the rational rank of its +ambient H1 image, P_j=Pr_p(r=j), and M=P_2-P_0. All sufficiently large ell +are honest square-cell tori. The matching graph has the eight steps +(+-1,0),(0,+-1),(+-1,+-1); parallel lifted edges are not collapsed. + +**Theorem A.** If p_Lambda is the unique zero of M, then + + lim_(L->infinity) sup_{Lambda: ell(Lambda)>=L} + |p_Lambda - p_c^site(Z^2)| = 0. (1) + +There is no restriction on area N relative to ell, aspect, shear, orientation, +Smith class, or primitivity of a Gaussian representative. The local site +product law and actual period lattice are essential. No arbitrary graph family +or dependent random-cluster law is included. + +More quantitatively, for each fixed p0, +independent of Lambda, such that + + P_2^Lambda(p)/P_0^Lambda(p) <= exp[-kappa(p) N/ell], ell>=L(p). (2) + +Above p_c the inverse ratio obeys the analogous estimate, with matching-side +constants. The conditional CDF H=P_2/(P_0+P_2) therefore has all its fixed +interior quantiles tending to p_c uniformly in Lambda. H is NOT F=(1+M)/2. + +The imported probability inputs are the same as in #718: + +* Subcritical **site** one-arm exponential decay on both infinite finite-range + transitive graphs. Duminil-Copin--Tassion, arXiv:1502.03050v3, Thm 1.1(3) + is printed for bonds; the explicit site-adaptation discussion in section 1.2 + is part of the provenance. We do not relabel the printed bond theorem as a + printed site theorem, or substitute square-bond p_c=1/2. +* p_c^site(NN)+p_c^site(NN+NNN)=1. Grimmett--Li, + arXiv:2205.02734v3, introduction Eq (1.3), together with amenability + p_u=p_c, states the relation and identifies the companion proof. +* The repository's configurationwise honest-torus digital-Alexander identity + r_NN(omega)+r_matching(omega^c)=2. It is an input, not inferred from this + delivery's finite checks. + +The new step beyond #718 is the oblique, integer-period slab construction. + +## 2. Reduce the period lattice, not the physical interaction + +Choose a shortest nonzero u in Lambda. It is primitive **in Lambda**: a proper +integer multiple would contradict shortness. Complete it to a basis (u,v), +orient det(u,v)=N>0, and replace v by v-ku so that + + |u dot v| <= ell^2/2, |v|>=ell. + +Let n=(-u_y,u_x)/ell and h=n dot v=N/ell. Pythagoras gives + + h >= sqrt(3) ell/2. (3) + +This is a change of period basis only. Physical edges remain the original NN +or NN+NNN steps, not rotated nearest-neighbour edges on a new grid. +Neither u nor v is required to be primitive in ambient Z^2. In particular an +axis period u=(w,0) is completely legitimate. + +The map theta(x)=n dot x modulo h is well-defined on the continuous torus. +Its fibres have length ell. On lattice vertices it can be implemented exactly +as q(x)=det(u,x) modulo N; each local edge e changes its lifted q by det(u,e). +Every edge has physical length and projected displacement at most sqrt(2). +An ambient rank-two cycle space necessarily contains a cycle whose theta +winding is nonzero. Repeating a lift traverses every transverse band. + +## 3. A finite-support local arm gives a lower bound for P_0 + +Set r=ell/64. On the infinite graph let a_r(p) be the probability that the +occupied origin has an occupied path reaching Euclidean distance at least r. +Stop the path on first exit. The event is measurable in radius r+sqrt(2). +For ell>=64, twice that support radius is smaller than ell, so it injects +into every quotient under consideration. Define the translated local event A_x +at each of the N torus vertices. Its probability is exactly a_r(p). + +A nonzero ambient cycle has a lift escaping such a ball. Thus + + intersection_x A_x^c subset {r=0}. + +These are overlapping, decreasing events. Harris association for independent +sites, iterated over the N indicators, gives + + P_0 >= (1-a_r)^N. (4) + +No independence of overlapping local balls is assumed. Association itself +follows by induction over Bernoulli coordinates: the conditional covariance +is nonnegative, and so is the covariance of the two monotone conditional means. + +## 4. Vertex-disjoint oblique slabs give an upper bound for P_2 + +Choose physical slab width b=ell/8 and + + k=floor(h/b)=floor(8N/ell^2). + +Translate their boundaries by a generic common offset to avoid vertices. +For an exact implementation, raw q-width is ell^2/8 and raw offset 1/17; +q-values are integers, so no boundary passes through a vertex. The k half-open +bands have disjoint vertex sets. Leave any residual strip unused. + +In each band let B_j be existence of an occupied path contained in that band, +from its lower sqrt(2)-layer to its upper sqrt(2)-layer. Edges crossing a band +boundary are not part of that band's event. The last-entry/first-exit portion +of any nonzero theta-winding cycle provides a B_j crossing in every band. +This remains true for a cycle that backtracks. Therefore + + {r=2} subset intersection_j B_j. (5) + +Each B_j is measurable using just that slab's site variables. These events ARE +independent. Diagonal edges or horizontal periodic winding do not create shared +site variables between bands. + +**Uniform bound on possible entry vertices.** Centre one unit square at each +lattice vertex; these squares tile the torus and have total area N. Squares +centred in a band of physical width sqrt(2) are contained in its enlargement +of width 2sqrt(2). Since fibres have length ell, the number of entry vertices +is at most 2sqrt(2) ell, hence at most M=4 ceil(ell). This area argument handles +arbitrary orientation, nonprimitive u in Z^2, and twisted longitudinal seam. + +A crossing's endpoint separation in the theta direction is at least +ell/8-2sqrt(2)>ell/64=r, for ell>=64. Its initial lift therefore witnesses A_x +at one of the entry vertices (possibly exiting the local ball sideways first). +By a union bound, Pr(B_j)<=M a_r. Consequently, when M a_r<1, + + P_2 <= (M a_r)^k. (6) + +Equation (3) implies 8N/ell^2>=4sqrt(3)>2, so + + k >= 4N/ell^2. (7) + +The new proof depends on the shortest period and transverse area, not on an +axis-aligned slicing of a chosen HNF display. A long HNF basis vector is not +itself evidence of a large systole. + +## 5. Uniform comparison of rates + +For fixed subcritical p, write a_r<=C exp(-c r)=C exp(-c ell/64). +For all sufficiently large ell, uniformly over orientation and N, + + log(M a_r)<=-c ell/128, a_r<=1/2, + 2a_r<=c/(64ell). + +Combining (4),(6),(7), using -log(1-a)<=2a, + + log(P_2/P_0) + <= k log(M a_r) - N log(1-a_r) + <= -c N/(32ell) + 2N a_r + <= -c N/(64ell). + +This proves (2). The negative logarithmic contribution in (4) is retained; +no exponentially small probability has been approximated by zero. + +For p>p_c(NN), set p*=1-p0} and {r=2} are nonconstant. A positive pivotal configuration along an +empty-to-full chain has positive product probability at every interior p, so +M'=dPr(r>0)/dp+dPr(r=2)/dp>0. With endpoint values -1 and +1, the root is unique. +The two fixed p values p_c+-epsilon trap it for all lattices with sufficiently +large ell. This proves (1), without choosing a numerical p_c. + +For H, H<=P_2/P_0 below p_c and 1-H<=P_0/P_2 above p_c. This traps its compact +interior quantiles as well. No claim about the behaviour exactly at p_c is used. + +## 6. What does not follow + +The theorem does NOT imply concentration of the birth-time mixture F. The +axis sequence w=j, m=ceil(exp(j^2)) is a special case of (1), but #716's +full/empty-row argument still gives L(T)=>0.5 delta_0+0.5 delta_1. Root consistency +and full-law concentration remain different statements in the SAME site model. + +No L^-4 rate, critical exponent, sharpness constant near p_c, numerical interval, +or proof that a particular all-width pTL eigenvalue crossing equals a finite +balance root is supplied. An inner cylinder limit, if separately known to exist, +inherits consistency by this uniform theorem; existence of that limit is not +silently assumed for arbitrary widths. + +## 7. Exact finite controls + +The script uses integer Lagrange reduction, verifies shortness against ambient +lattice membership on every HNF with determinant <=50, and verifies height and +period identities. That is 2,080 period bases, not 2,080 percolation productions. + +On HNFs (10,3,1), (13,5,1), (5,2,3), (4,1,4), every configuration is traversed +as a physical lifted graph for NN and matching. That gives 215,040 graph/config +checks and 107,520 complementary pair checks. Slab crossings are checked by a +separate boundary-restricted reachability search in the determinant coordinate. +Tiny controls use wider raw slabs than the asymptotic choice, retaining the +explicit separation and injectivity inequalities; they are not claimed to have +ell>=64. With r<1 their arm probability is exactly p[1-(1-p)^degree]. Rational +P_0 lower, P_2 upper and slab union bounds are checked at three p values. + +Larger fixed masks include true oblique Gaussian ideals (63+16i) and (32+57i), +plus a twisted rectangle. Every chosen coarse slab is explicitly vertex-disjoint. +Two distant-subcritical sign examples use a certified simple-path union bound; +a Bernoulli-inequality check avoids exponentially large integer powers. They are +not critical-point enclosures. The proof above, not an extrapolation of controls, +is the reason the conclusion covers all integer period lattices. diff --git a/notes/jordan-visibility-not-eigenvalue-shape-20260912.md b/notes/jordan-visibility-not-eigenvalue-shape-20260912.md new file mode 100644 index 00000000..5be352b9 --- /dev/null +++ b/notes/jordan-visibility-not-eigenvalue-shape-20260912.md @@ -0,0 +1,196 @@ +# Jordan visibility is a property of an operator AND its observable + +2026-09-12. Direct mathematical review of #724/#731, with exact counterexamples +and a fully positive stochastic control. This does not settle #275 or identify +a continuum module. General perturbation theory and realization theory are not +claimed as new; the deliverable makes the relevant distinctions executable. + +## 1. What remains right in the retrieval + +Vasseur--Jacobsen--Saleur, arXiv:1206.2312v2, Eq (11), identifies a Jordan cell +through the transformation mixing of specified fields. Its conclusion explicitly +distinguishes that logarithmic observable from logarithms obtained by differentiating +Boltzmann weights. The narrow statement "a thermal m lambda^m factor alone does +not identify the underlying physical Jordan block" remains correct. + +But #724 additionally states a converse-like diagnostic (linear split implies +semisimple), treats pointwise semisimplicity as guaranteeing analytic eigenpairs, +and labels m lambda^(m-1) a semisimple signature. Those stronger implications +are false. #731's otherwise useful citation check did not correct them. + +Bamieh arXiv:2002.05001v2 section 2 EXPLICITLY assumes that eigenvectors and +eigenvalues are analytic near zero before constructing the series. This is an +extra hypothesis, not a consequence of pointwise diagonalizability. The Kato +body was not read by #724; its table of contents cannot certify a proposed iff. + +## 2. Three exact counterexamples + +### 2.1 Linear analytic branches through a defective matrix + + A(t) = [[1+t, 1], [0, 1-t]]. + +The eigenvalues are 1+t and 1-t. At t=0, A is a genuine size-two Jordan block. +A(t) is diagonalizable for t!=0. A nongeneric triangular unfolding can therefore +have linear branches despite defectiveness at the collision. "Linear split => +semisimple" must be deleted. + +### 2.2 Semisimple at zero, diagonalizable pointwise, nonanalytic branches + + B(t) = [[0, t], [t^2, 0]], char_B(x)=x^2-t^3. + +B(0)=0 is semisimple, and B(t) has two distinct eigenvalues for t!=0. Nevertheless +its eigenvalues are +-t^(3/2), which cannot be holomorphic through t=0. An analytic +root would have an integer vanishing order k, but 2k=3. + +### 2.3 The problem occurs even for an affine pencil + + C(t) = [[0,t,0], [0,0,t], [t,0,1]], + char_C(x)=x^2(x-1)-t^3, + discriminant=-t^3(4+27t^3). + +C(0)=diag(0,0,1) is semisimple. For 0<|t|<1/4 all eigenvalues are distinct, so +C(t) is pointwise diagonalizable throughout the neighborhood, including t=0. +The two roots tending to zero are not analytic: x^2(x-1)=t^3 again forces order +3/2. Thus restricting the physical matrix family to A0+t A1 does not rescue +the unsupported analytic-branch claim. The first reduced perturbation on the +degenerate eigenspace is itself defective; individual eigenvectors become badly +conditioned even though each full matrix is diagonalizable. + +**Do not overcorrect.** A genuine leading square-root t^(1/2) split under a +holomorphic finite matrix perturbation is incompatible with a semisimple +coalescing eigenvalue: semisimple perturbations move locally by O(t). Higher +fractional powers such as t^(3/2), however, do not imply a defective A(0). +With self-adjointness or appropriate analytic eigenpair assumptions stronger +analytic conclusions are available. Numerical fitted powers are not certificates. + +## 3. Positivity and irreducibility do not make traces identify Jordan structure + +Let e=(1,1,1)^T, u=(1,-1,0)^T, v=(1,1,-2)^T and define + + P=ee^T/3, Q=I-P, + D=uu^T/2-vv^T/6, N=uv^T/6. + +Then N^2=0, N!=0, PN=NP=0, D^2=Q, DN=N, ND=-N. Define two row generators + + G_D(t)=-Q+tD, + G_J(t)=-Q+tD+N/2, |t|<=1/4. (1) + +Both have zero row and column sums. All off-diagonal entries are at least +1/6 for G_D and 1/12 for G_J over the entire interval. Thus BOTH are irreducible +continuous-time Markov generators with the SAME uniform stationary law. G_D is +symmetric/reversible; G_J is not asserted reversible. + +On span(u,v), their matrices are diag(-1+t,-1-t) and + + [[-1+t, 1/2], [0, -1-t]]. + +At t=0, G_D is semisimple and G_J has a nontrivial Jordan block at -1. Their +minimal polynomials are z(z+1) and z(z+1)^2. Their characteristic polynomials +are identical for every t: + + z[(z+1)^2-t^2]. (2) + +For T_D=I+G_D/2 and T_J=I+G_J/2 every entry is strictly positive and both row +and column sums are one. The common ordinary trace functions are + + tr(T(t)^m)=1+[(1+t)/2]^m+[(1-t)/2]^m, + tr(exp(sG(t)))=1+2 exp(-s) cosh(st). (3) + +Therefore ALL ordinary traces, ALL lengths, and ALL t derivatives agree in +these two families. Any common deterministic normalization, moving-root rule, +or nonlinear statistic formed solely from those identical trace coordinates +also agrees. More precision or more ordinary thermal derivatives cannot +separate this pair. + +This is an abstract Markov/stochastic-matrix control. It is NOT claimed to be +square-site percolation, a candidate LCFT, or the actual source map of #275. +It shows that positivity, irreducibility and a common stationary normalization +are not sufficient extra assumptions to make the proposed trace diagnostic valid. + +## 4. One ordinary probability readout distinguishes the same pair + +Keep the source delta_state_1 and readout 1{state=3}. At t=0 the discrete-time +responses are exactly + + y_D(m)=(1-2^(-m))/3, + y_J(m)=(1-2^(-m))/3 - (m/6)2^(-m). (4) + +These are actual transition probabilities, not arbitrary signed test vectors. +The 2x2 Hankel determinant of y_D, starting at m=0, is -1/36; the 3x3 determinant +of y_J is -1/6912. Their exact minimal scalar recurrences have polynomials + + (x-1)(x-1/2), (x-1)(x-1/2)^2. + +Thus the **fixed physical operator** has a visible repeated pole in this specified +response, even though every ordinary trace in (3) is blind to it. In continuous +time the response difference is -s exp(-s)/6. A stationary uniform source instead +is blind to the difference for every readout, because the invariant source kills +N. The source matters as much as the eigenvalues. + +## 5. Exact general visibility condition + +For a finite matrix A, let P_lambda be its generalized spectral projectors and +N_lambda=(A-lambda I)P_lambda. For a specified row source C and column readout B, + + C exp(sA) B + = sum_lambda exp(s lambda) + sum_{k>=0} s^k/k! C N_lambda^k P_lambda B. (5) + +A Jordan contribution at a given eigenvalue is visible precisely when at least +one coefficient with k>=1 is nonzero (after combining all blocks at that same +lambda). This is elementary finite-dimensional functional calculus, not a new +LCFT criterion. A repeated pole in a minimal exact fixed-operator response proves +Jordan structure in that minimal realization; noisy finite approximations do not +supply such an exact conclusion without separation/error assumptions. + +For an ordinary trace, every nilpotent term has trace zero. More generally, if +C is an invariant/commuting mark, [C,A]=0, then C commutes with P_lambda and +N_lambda. For k>=1, C N_lambda^k P_lambda is nilpotent, so + + tr[C N_lambda^k P_lambda]=0. (6) + +Thus ordinary traces and invariant-sector traces do not directly read Jordan +nilpotents. A noncommuting mark or a specified off-diagonal matrix element may. +This is NOT a blanket statement about all marked traces or words containing +multiple noncommuting operators. + +For #275 the practical preliminary question is: for its ACTUAL source/closure, +are the coefficients L(N_lambda^k P_lambda) represented and nonzero? The answer +cannot be inferred from the word "trace", "spin 4", or an apparent m factor. +The existing two-candidate original-U gate stays in place; no source change or +third model is authorized by this note. + +## 6. Thermal jets are a different operator + +For an analytic physical matrix A(t), the block matrix + + J_1(t0) = [[A(t0), A'(t0)], [0, A(t0)]] + +encodes the first parameter derivative: its upper-right block in J_1^m is +partial_t A(t)^m at t0, and similarly for the exponential. This follows by +multiplying block upper-triangular matrices. Higher jets act on a truncated +polynomial ring, with derivative blocks divided by factorials. + +Even A(t)=diag(1+t,1-t), which is semisimple, gives a nontrivial nilpotent part +in J_1(0). A repeated pole or polynomial length factor in the JET realization +therefore does not prove a Jordan block in the original physical A(t0). +One must identify which operator and which observable is being reconstructed. + +## 7. Executed checks and citation boundaries + +The symbolic program verifies both characteristic/minimal polynomials, exact +endpoint positivity of affine generator entries (hence positivity throughout), +row/column sums, the two small Hankel determinants, three perturbation examples, +and nine jet-power identities. It compares trace polynomials and their derivatives +through order four for lengths 0..12 as regressions. The all-length statements +follow from the displayed exact triangular blocks, not those 65 regressions. + +A separate standard-library Fraction program reconstructs the physical matrices +independently, verifies 10 generator instances, 105 trace moments and both +Hankel determinants by rational Gaussian elimination. It imports neither SymPy +nor the producing script. + +Primary texts read this round: Bamieh 2002.05001v2 section 2 and assumptions; +Vasseur--Jacobsen--Saleur 1206.2312v2 Eq (11) and conclusion. Qian--Chu--Tan, +SIAM J. Matrix Anal. Appl., DOI 10.1137/15M1053050, is ABSTRACT_ONLY and is not +used as the proof of any counterexample. No global novelty search was performed. diff --git a/notes/marked-source-root-robustness-20260912.md b/notes/marked-source-root-robustness-20260912.md new file mode 100644 index 00000000..1fd6d740 --- /dev/null +++ b/notes/marked-source-root-robustness-20260912.md @@ -0,0 +1,96 @@ +# Positive marks: robust limiting roots, but not automatically unique finite roots + +2026-09-12. Corollary of the arbitrary-period odds theorem. This addresses +actual microscopic local-source and homology-source variants without replacing +#275's frozen source or asserting a continuum identification. + +## 1. General bounded-oscillation theorem + +Let W_Lambda(omega)>0 be a fixed, p-independent weight on configurations, and + + Omega_Lambda = max_omega log W_Lambda - min_omega log W_Lambda. + +Keep the physical normalizer: + + P_j^W(p)=E_p[W 1{r=j}]/E_p[W], M^W=P_2^W-P_0^W. + +Then exactly + + exp(-Omega) P_2/P_0 <= P_2^W/P_0^W <= exp(Omega) P_2/P_0. (1) + +The denominator cancels in this RATIO, not from the probability law. The proof +is the elementary min/max bound on W in each of the two event sums. + +**Theorem B.** On any integer-period sequence with ell->infinity, if + + Omega_Lambda = o(N/ell), (2) + +then every zero of M^W tends to p_c(NN). There is at least one zero, since +M^W is continuous and its endpoint values are -1 and +1. Uniqueness is NOT +claimed for general W. + +Proof. Below p_c the unweighted log odds are <=-kappa N/ell; above p_c they +are >=kappa* N/ell. The oscillation in (2) is smaller than either fixed-p +margin. The unweighted odds are increasing in p, so the same signs hold on +all p outside [p_c-epsilon,p_c+epsilon], not just at its endpoints. Consequently +ALL weighted zeros are trapped there. Also N/ell>=sqrt(3)ell/2->infinity. + +This is a statement about a source family. It does not convert an unseen +source into new evidence or authorize replacing an old score's source. + +## 2. Local product fields and intrinsic rank sources + +For a local log-odds field + + W(omega)=exp(sum_v eta_v omega_v), + +Omega=sum_v |eta_v|, and the normalized measure is still a product law with +site probabilities + + p_v(p)=p exp(eta_v)/(1-p+p exp(eta_v)). + +Each p_v is strictly increasing in p. Hence M^W is strictly increasing, and +Theorem B supplies a UNIQUE consistent root whenever + + sum_v |eta_v|=o(N/ell). (3) + +A fixed number of bounded local insertions, placed ANYWHERE, obey (3). More +generally k_Lambda=o(N/ell) sites with uniformly bounded fields suffice. This +connects the finite local-source controls to a limiting-root statement, not a +prediction of their finite shift amplitude or harmonic type. The field here is +in log odds; it is not silently equated to a fixed additive p+-epsilon contract. + +For W=exp(s(r-1)), Omega=2|s| and the rank odds are multiplied by exp(2s). +The source-balanced root is again unique and consistent if |s|=o(N/ell). +For axis rectangles N/ell=m, recovering the earlier |s|=o(m) statement. + +For a bounded nonlocal mark f_Lambda and W=exp(s_Lambda f_Lambda), it is enough +that |s_Lambda| osc(f_Lambda)=o(N/ell). No monotonicity or locality of f is +needed to localize all zeros, but uniqueness does not follow. + +## 3. An exact finite warning: a positive fixed mark creates three roots + +On the axis 4x4 torus choose one occupied row-column cross A (7 sites, rank 2) +and the complementary 3x3 block B (9 sites, rank 0). Set + + W(omega)=1+10^12 [1{omega=A}+1{omega=B}]. + +It is positive and independent of p. The unnormalized weighted balance is + + M(p)+10^12 p^7(1-p)^7(1-2p). (4) + +Its normalizer is 1+10^12[p^7(1-p)^9+p^9(1-p)^7]>0. +Independent physical lifted-graph enumeration reproduces the base Bernstein +coefficients, then Fraction arithmetic gives signs + + p=1/1000: negative; p=1/4: positive; + p=3/4: negative; p=999/1000: positive. + +So there are at least THREE distinct finite balance roots. This prevents +silently importing monotonicity from the original product law into an arbitrary +weighted ensemble. The example does not refute Theorem B: the latter localizes +all roots asymptotically under (2), not their finite multiplicity. + +Files: scripts/marked_balance_controls.py and its saved exact-rational report. +The 65,536-configuration axis census here is only this additional finite +regression, separate from the oblique HNF controls. diff --git a/notes/oblique-jordan-handoff-20260912.md b/notes/oblique-jordan-handoff-20260912.md new file mode 100644 index 00000000..8d6d2d13 --- /dev/null +++ b/notes/oblique-jordan-handoff-20260912.md @@ -0,0 +1,52 @@ +# Existing-thread handoff: completed results, not duplicate jobs + +2026-09-12. Four review comments have already been posted (IDs in the source audit). +The owner receives the executable proof package and additive patch separately. + +## #718 / #732 / #276 / #613 + +The rectangular calculation does not need another dispatch. The new deliverable +extends root consistency to arbitrary integer-period lattices Lambda with +ell(Lambda)->infinity. The proof's review target is the reduced-period transverse +coordinate and the independence/entry count of the oblique bands, not a new root +or width census. Fixed p subcritical odds are bounded by exp[-kappa N/ell]. +The full birth-law theorem retains its stronger geometry assumptions; it is not +silently upgraded by a root theorem. + +A positive p-independent mark with osc(log W)=o(N/ell) preserves consistency of +ALL balance zeros. Product log-odds sources have a unique zero; arbitrary marks +need not. The exact 4x4 example with at least three zeros is already completed. + +The next genuinely unresolved probability question is a useful width/geometry- +uniform quantitative near-critical bound, not the qualitative consistency +proved here. No free exponent, GPU run or large-N campaign is justified by this +handoff. The arm constants needed for numerical rates have not been supplied. + +## #724 / #731 / #714 / #275 + +Correct the two algebraic implications in the posted comments before using the +retrieval as a candidate filter. The primary LCFT field-mixing discussion can +remain. Exact stochastic controls are provided; do not ask for further production +to decide 2x2/3x3 counterexamples. + +For actual candidate forward maps, distinguish (i) physical operator at fixed p, +(ii) parameter-jet lift, (iii) source/closure matrix elements. Check whether the +actual functional can see N_lambda^k P_lambda. Ordinary trace jets cannot replace +that check. No claim that original-U is unidentifiable under every possible mark; +the existing same-source candidate-map rule is not reopened or declared solved. + +## #728 / #717 / #720 + +Posted correction distinguishes equality of the finite scalar M from equality of +a particular transfer representation. The previous site-source configuration +proof is not reissued as a new result. All-width representation/closure weights +remain legitimate targets; searching again for the already-explicit scalar +identity is not. + +## Resource decision + +All computations in this delivery are completed locally. No new issue is needed. +There is no queued big computation in this handoff. A literature-priority survey +or a quantitative near-critical program must have a specific missing statement +before it becomes a substantial task. Current independent verification can use +the proof, exact counterexamples, and runnable controls directly. diff --git a/notes/oblique-jordan-review-20260912-zh.md b/notes/oblique-jordan-review-20260912-zh.md new file mode 100644 index 00000000..0d628555 --- /dev/null +++ b/notes/oblique-jordan-review-20260912-zh.md @@ -0,0 +1,108 @@ +# 本轮分析:任意周期环面的根一致性、源扰动边界与 Jordan 可见性 + +日期:2026-09-12。新结果待团队独立复核;没有宣称文献优先权或新的临界概率。 + +## 结论 + +1. 匹配根一致性从轴向矩形推广到任意满秩整数周期子格。只需最短非零周期 + ell 趋向无穷,不需要面积、长宽比、倾角、Smith 类或 Gaussian primitive + 条件。结论关于根和条件 rank 比值,不关于完整出生分布。 +2. 任意正的、与 p 无关的源权重,若 osc(log W)=o(N/ell),其全部平衡零点 + 仍趋向同一 p_c。局部 product logit 源保留唯一性;一般正权重不保留。 + 已给出实际 4x4 方格点渗流中至少三个有限零点的精确例子。 +3. #724/#731 的两个逆向诊断错误已经给出反例,并直接发到相应 PR。 + 线性分裂可以经过 Jordan 块;处处可对角化的解析矩阵族不自动有解析特征值分支。 + 其中一个反例甚至是仿射矩阵铅笔,而不是非线性参数化。 +4. 两个严格正的随机矩阵族/不可约 Markov 族,具有完全相同的全参数、全长度 + 普通迹和全部参数导数,却有不同的 Jordan 结构。指定的普通转移概率能够 + 区分它们。这把“源和读出必须可见”变成一个可执行的完整对照。 + +## 一、倾斜几何的关键新步骤 + +对 Lambda<=Z^2,取最短周期 u,令 |u|=ell,补成约化基 (u,v),det(u,v)=N。 +横向高度 h=N/ell,满足 h>=sqrt(3)ell/2。用 det(u,x) modulo N 定义横向 +整数坐标,而不是把斜格子错误地当成旋转后的 NN 正方格。 + +半径 ell/64 的局部 first-exit 臂事件可以嵌入商空间。Harris 关联给出 + + P0 >= (1-a)^N。 + +再取 k=floor(8N/ell^2) 个顶点互不重叠的斜条带。rank 2 必须穿过每一带; +单位格面积计数给出每带入口不超过 4 ceil(ell),所以 + + P2 <= [4 ceil(ell) a]^k。 + +这里小球事件重叠,使用正关联;条带顶点不重叠,才使用独立性。 +两者不可互换。点渗流亚临界指数衰减给出 + + P2/P0 <= exp[-kappa(p) N/ell]。 + +对 matching 补图应用同一论证,得到临界点上方的反向比值界。因此根被一致夹住。 +不需要用已知 p_c 数字或外推指数。 + +本结论不推翻 #716 的极端薄环面分布分裂,也没有提供临界附近的定量收敛速率。 +完整证明:arbitrary-period-balance-consistency-20260912.md。 + +## 二、局部源何时不会改变极限目标 + +正权重的正规化始终保留。仅在 P2^W/P0^W 的比值里它消去;比值变化不超过 +exp[+-osc(log W)]。故只要该振幅是 o(N/ell),所有平衡零点都一致集中到 p_c。 + +对局部 logit 场 W=exp(sum eta_v omega_v),振幅为 sum|eta_v|;固定数量的 +有限强度插入总满足条件,其空间布局任意。这不是旧的 p+-epsilon source +合同自动等价,也没有预测有限尺寸导数幅度。 + +不能顺便声称一般加权根唯一。4x4 上给一个 rank-2 的 7 点 cross 和一个 +rank-0 的 9 点方块各加 10^12 的配置权重,未正规化平衡为 + + M(p)+10^12 p^7(1-p)^7(1-2p)。 + +在 p=1/1000,1/4,3/4,999/1000 的精确符号依次为 -,+,-,+,所以至少三个根。 +正规化严格为正。完整说明:marked-source-root-robustness-20260912.md。 + +## 三、#724 的反例和正确判定对象 + +A(t)=[[1+t,1],[0,1-t]] 的两根为 1+-t,但 A(0) 真正不可对角化。 +“线性分裂 implies 半单”因此不成立。 + +C(t)=[[0,t,0],[0,0,t],[t,0,1]] 在零点为 diag(0,0,1),附近每个非零点 +也都可对角化;但其特征式 x^2(x-1)=t^3 迫使近零特征值的阶数为 3/2, +不可能解析。Bamieh 第二节明确假设解析特征向量/特征值,不能把假设倒读成定理。 +注意:真正的 leading sqrt(t) 结论更窄,本反例不否定它。 + +新的三态 Markov 对照在参数区间 [-1/4,1/4] 的全部非对角速率都严格为正, +有同一个均匀平稳律。两个随机矩阵的每个普通迹都为 + + 1+[(1+t)/2]^m+[(1-t)/2]^m。 + +在 t=0,一个半单,一个有 Jordan 块。所有 trace thermal jets 无法区分它们。 +但从状态 1 到状态 3 的概率分别为 + + (1-2^(-m))/3, + (1-2^(-m))/3 - m 2^(-m)/6。 + +相应最小标量递推阶数 2、3;精确 Hankel 行列式 -1/36、-1/6912。 +这是 Markov 对照,不是把它冒充为方格点渗流候选。 + +真正的固定算子可见性系数是 C N_lambda^k P_lambda B;普通迹和与算子 +对易的不变扇区迹会消去 k>=1 项。热导数所对应的 jet 升维算子,本身可以 +有 nilpotent 部分,即使原物理算子半单。因此必须先区分物理算子、jet 算子和读出。 +#275 的两个实际候选、相同 source/normalizer/moving-root 前向映射仍未由本轮补齐。 + +## 四、实际执行和远端动作 + +- 2,080 个 HNF 周期基的约化和最短性核对。 +- 215,040 次小斜环面图/配置检查,107,520 对补图 rank-sum 检查。 +- 80 个较大固定结构控制,包含真正的倾斜 Gaussian ideal。 +- 额外 4x4 的 65,536 个物理配置,用于一般正权重的多根例子。 +- 65 个符号 trace/参数导数回归,9 个 jet 矩阵幂恒等式。 +- 独立标准库 Fraction 实现重建 10 个 Markov 实例、105 个迹矩及两个 Hankel 子式。 +- 17 项本地测试通过。完整仓库 CI 未运行;新脚本只需标准库和 SymPy。 + +已实际发出四条 PR 评论:#724/5646908635、#731/5646909623、#728/5646913116、 +#718/5646924543。没有更改分支、合并、开关 issue、改 STATUS 或启动生产。 +代码与新证明作为独立新增补丁交付,需由团队按原流程提交和独立审查。 + +#728 把同一有限匹配标量与不同转移矩阵表示混为一谈的更正,沿用上一轮已完成的 +配置级证明,不计作本轮另一项新定理。有限检索未发现某公式不等于证明从未发表, +本轮不为 #723/#730 的原创性措辞背书。 diff --git a/notes/oblique-jordan-source-audit-20260912.md b/notes/oblique-jordan-source-audit-20260912.md new file mode 100644 index 00000000..3fe56187 --- /dev/null +++ b/notes/oblique-jordan-source-audit-20260912.md @@ -0,0 +1,80 @@ +# Source and action audit for the oblique/Jordan delivery + +2026-09-12. This is a bounded primary-source recheck, not a global novelty survey. + +## Repository reads + +- Latest PR search: #732/#731/#730/#729/#728/#725/#724/#723/#718. Full PR + bodies were read, not taken as endorsements of each other's conclusions. +- #724 at ef6bdcf5c8f77fa697f0273731bb681334a1967e: + notes/lit-thermal-jet-jordan-20260912.md read directly through GitHub. +- Actual #724 and #728 discussions read before adding corrections. +- #718's aspect-uniform note and rectangular reference script read from the + conversation's supplied immutable archive. New scripts have NO runtime + dependency on that archive or on #708/#710/#716/#718. +- #732's peer check supports the stated rectangular result. It does not + certify the new arbitrary-period theorem, which needs its own review. +- #728 keeps a false distinction between Mertens--Ziff's scalar matching + function and digital-Alexander M. The previous site-source handoff already + corrected that distinction; this round posts it where it was propagated, + rather than counting it as another new theorem. + +## External primary text read this round + +1. Duminil-Copin--Tassion, arXiv:1502.03050v3, + https://arxiv.org/html/1502.03050v3 + Thm 1.1(3), section 1.2 site adaptation. PRIMARY_TEXT_READ for these sections. + The printed theorem is bond language, the site paragraph is an adaptation. + No new claim that the paper prints a separate numbered site theorem. +2. Grimmett--Li, arXiv:2205.02734v3, + https://arxiv.org/html/2205.02734v3 + Introduction, especially Eq (1.3), matching-pair relation and amenable scope. + PRIMARY_TEXT_READ for these sections. Companion proof 2203.00981 was not + separately read this round and is not given a new primary-read tag. +3. Bamieh, arXiv:2002.05001v2, + https://arxiv.org/html/2002.05001v2 + Assumptions and section 2: analytic eigenvectors/eigenvalues are explicitly + assumed. PRIMARY_TEXT_READ. Kato's body is NOT read or quoted this round. +4. Vasseur--Jacobsen--Saleur, arXiv:1206.2312v2, + https://arxiv.org/html/1206.2312v2 + Eq (11) and conclusion: specific field mixing vs Boltzmann-weight derivative + logs. PRIMARY_TEXT_READ for these passages. No general novelty of the finite + matrix counterexamples or visibility expansion is claimed. +5. Mertens--Ziff, arXiv:1603.07289v2, + https://arxiv.org/html/1603.07289v2 + Introduction after (4), (20)--(21) and following text. PRIMARY_TEXT_READ for + these passages. They explicitly connect the matching RHS and critical-polynomial + criterion. Same scalar object does not identify a particular transfer matrix. +6. Qian--Chu--Tan, A Systematic Analysis on Analyticity of Semisimple Eigenvalues + of Matrix-Valued Functions, DOI 10.1137/15M1053050. + Publisher abstract read; ABSTRACT_ONLY. Not used as the proof of a counterexample. + +No PDF figures or tables were needed; the above reads used primary HTML. + +## Review decisions + +- Keep the existing site-sharpness/matching assumptions and #718 rectangular + conclusion. Extend them using an explicit new oblique-band proof, not an + unproved change of physical nearest-neighbour geometry. +- Correct #724/#731's linear-split implication and analytic-branch assumption. + Keep the narrow warning that a thermal polynomial length factor is not enough + to identify a physical Jordan block. +- Correct #728's scalar-object distinction; keep the absence of our specific + small block representation in those cited equations. +- Bounded retrieval that does not find a formula should be stated as such. + Claims in #723/#730 of absence from all print / surviving novelty should not + be upgraded to priority certification by this delivery. + +## Remote actions actually performed + +Top-level comments were posted successfully: + +- #724, comment 5646908635: exact Jordan/analyticity counterexamples and visibility. +- #731, comment 5646909623: peer-check amendment, referring to the #724 correction. +- #728, comment 5646913116: same scalar observable vs different matrix realization. +- #718, comment 5646924543: completed arbitrary-period proof and marked-source scope. + +No branch writes, merge, issue creation/closure, STATUS edit, workflow trigger, +production request or credential/hardware operation occurred. The executable +files are handed to the owner as an additive patch; comments are not substitutes +for committing or independently reviewing the proof. diff --git a/results/research-control-20260912/jordan-trace-controls.json b/results/research-control-20260912/jordan-trace-controls.json new file mode 100644 index 00000000..5d0ab694 --- /dev/null +++ b/results/research-control-20260912/jordan-trace-controls.json @@ -0,0 +1,251 @@ +{ + "schema": "matching-one.jordan-trace-controls.v1", + "scope": "exact finite analytic matrix controls; NOT a percolation or LCFT candidate identification", + "domain": "-1/4 <= t <= 1/4", + "sympy_version": "1.14.0", + "P": [ + [ + "1/3", + "1/3", + "1/3" + ], + [ + "1/3", + "1/3", + "1/3" + ], + [ + "1/3", + "1/3", + "1/3" + ] + ], + "Q": [ + [ + "2/3", + "-1/3", + "-1/3" + ], + [ + "-1/3", + "2/3", + "-1/3" + ], + [ + "-1/3", + "-1/3", + "2/3" + ] + ], + "D": [ + [ + "1/3", + "-2/3", + "1/3" + ], + [ + "-2/3", + "1/3", + "1/3" + ], + [ + "1/3", + "1/3", + "-2/3" + ] + ], + "N": [ + [ + "1/6", + "1/6", + "-1/3" + ], + [ + "-1/6", + "-1/6", + "1/3" + ], + [ + "0", + "0", + "0" + ] + ], + "semisimple_generator": [ + [ + "t/3 - 2/3", + "1/3 - 2*t/3", + "t/3 + 1/3" + ], + [ + "1/3 - 2*t/3", + "t/3 - 2/3", + "t/3 + 1/3" + ], + [ + "t/3 + 1/3", + "t/3 + 1/3", + "-2*t/3 - 2/3" + ] + ], + "defective_at_zero_generator": [ + [ + "t/3 - 7/12", + "5/12 - 2*t/3", + "t/3 + 1/6" + ], + [ + "1/4 - 2*t/3", + "t/3 - 3/4", + "t/3 + 1/2" + ], + [ + "t/3 + 1/3", + "t/3 + 1/3", + "-2*t/3 - 2/3" + ] + ], + "generator_offdiagonal_lower_bounds": [ + "1/6", + "1/12" + ], + "stationary_distribution": [ + "1/3", + "1/3", + "1/3" + ], + "shared_generator_characteristic_polynomial": "z*(-t + z + 1)*(t + z + 1)", + "shared_stochastic_power_trace": "1+((1+t)/2)^m+((1-t)/2)^m", + "shared_semigroup_trace": "1+2*exp(-s)*cosh(s*t)", + "nilpotent_coefficient": "1/2", + "geometric_multiplicities_at_minus_one": [ + 2, + 1 + ], + "minimal_generator_polynomials": [ + "z*(z+1)", + "z*(z+1)^2" + ], + "thermal_trace_regressions": 65, + "regression_max_length": 12, + "all_length_proof": "ordinary traces depend only on eigenvalues with algebraic multiplicities; both analytic families have identical characteristic polynomial", + "probability_readout": { + "source": "delta_state_1", + "readout": "indicator_state_3", + "semisimple": "(1-2^(-m))/3", + "Jordan": "(1-2^(-m))/3-m*2^(-m)/6", + "semisimple_values": [ + "0", + "1/6", + "1/4", + "7/24", + "5/16", + "31/96", + "21/64", + "127/384", + "85/256", + "511/1536", + "341/1024", + "2047/6144" + ], + "Jordan_values": [ + "0", + "1/12", + "1/6", + "11/48", + "13/48", + "19/64", + "5/16", + "247/768", + "251/768", + "1013/3072", + "509/1536", + "1361/4096" + ], + "minimal_recurrence_orders": [ + 2, + 3 + ], + "hankel_determinants": [ + "-1/36", + "-1/6912" + ], + "continuous_time_difference": "-s*exp(-s)/6" + }, + "counterexamples": { + "linear_split_defective": [ + [ + "t + 1", + "1" + ], + [ + "0", + "1 - t" + ] + ], + "nonlinear_pencil_semisimple_Puiseux": [ + [ + "0", + "t" + ], + [ + "t**2", + "0" + ] + ], + "affine_pencil_semisimple_Puiseux": [ + [ + "0", + "t", + "0" + ], + [ + "0", + "0", + "t" + ], + [ + "t", + "0", + "1" + ] + ], + "affine_pencil_characteristic": "-t**3 + x**3 - x**2", + "affine_pencil_discriminant": "-t**3*(27*t**3 + 4)", + "analytic_branch_obstruction": "an analytic root with x(0)=0 would have integer order k; x^2*(x-1)=t^3 forces 2k=3" + }, + "jet_lift": [ + [ + "1", + "0", + "1", + "0" + ], + [ + "0", + "1", + "0", + "-1" + ], + [ + "0", + "0", + "1", + "0" + ], + [ + "0", + "0", + "0", + "1" + ] + ], + "jet_lift_nontrivial_Jordan": true, + "not_claimed": [ + "No new general Jordan or realization theorem.", + "No numerical eigenvalue fit certifies exact Jordan structure.", + "Noncommuting marks / specified matrix elements can distinguish these examples.", + "The Markov pair is not a model of square-site percolation." + ], + "elapsed_seconds": 0.6160735780001687 +} diff --git a/results/research-control-20260912/jordan-trace-fraction-check.json b/results/research-control-20260912/jordan-trace-fraction-check.json new file mode 100644 index 00000000..f26598f4 --- /dev/null +++ b/results/research-control-20260912/jordan-trace-fraction-check.json @@ -0,0 +1,12 @@ +{ + "schema": "matching-one.jordan-trace-fraction-verification.v1", + "arithmetic": "stdlib Fraction; independently reconstructed matrices; Gaussian determinant", + "generator_instances": 10, + "trace_moments": 105, + "hankel_determinants": [ + "-1/36", + "-1/6912" + ], + "success": true, + "elapsed_seconds": 0.009767099999862694 +} diff --git a/results/research-control-20260912/marked-balance-controls.json b/results/research-control-20260912/marked-balance-controls.json new file mode 100644 index 00000000..65fd8aa4 --- /dev/null +++ b/results/research-control-20260912/marked-balance-controls.json @@ -0,0 +1,149 @@ +{ + "schema": "matching-one.marked-balance-controls.v1", + "N": 16, + "scope": "axis 4x4, uniform base Bernoulli law, one positive nonproduct p-independent mark", + "physical_configurations": 65536, + "cross_mask": 4383, + "rank0_block_mask": 61152, + "cross_k_rank": [ + 7, + 2 + ], + "block_k_rank": [ + 9, + 0 + ], + "source_weight": "1+10^12*(1{omega=cross}+1{omega=3x3_block})", + "weight_min": "1", + "weight_max": "1000000000001", + "base_matching_Bernstein_counts": [ + -1, + -16, + -120, + -560, + -1812, + -4272, + -7448, + -9424, + -7874, + -2896, + 1720, + 2832, + 1660, + 560, + 120, + 16, + 1 + ], + "rank_counts_by_occupation": [ + [ + 1, + 16, + 120, + 560, + 1812, + 4272, + 7448, + 9440, + 8082, + 3984, + 792, + 32, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 8, + 96, + 560, + 1984, + 4580, + 6368, + 4704, + 1472, + 160, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16, + 208, + 1088, + 2512, + 2864, + 1660, + 560, + 120, + 16, + 1 + ] + ], + "marked_numerator": "M(p)+10^12*p^7*(1-p)^7*(1-2p)", + "rational_sign_checks": [ + { + "p": "1/1000", + "unnormalized_balance": "-499999999500482522479459826955803027935992015997/500000000000000000000000000000000000000000000000", + "normalizer": "500000000495518454573419559471507999/500000000000000000000000000000000000", + "normalized_balance": "-499999999500482522479459826955803027935992015997/500000000495518454573419559471507999000000000000", + "sign": -1, + "multiplicative_odds_bound_checked": true + }, + { + "p": "1/4", + "unnormalized_balance": "8747997929829443/2147483648", + "normalizer": "2669678258663/524288", + "normalized_balance": "8747997929829443/10935002147483648", + "sign": 1, + "multiplicative_odds_bound_checked": true + }, + { + "p": "3/4", + "unnormalized_balance": "-8747998455530621/2147483648", + "normalizer": "2669678258663/524288", + "normalized_balance": "-8747998455530621/10935002147483648", + "sign": -1, + "multiplicative_odds_bound_checked": true + }, + { + "p": "999/1000", + "unnormalized_balance": "499999999424674562079327169156970711824127968003/500000000000000000000000000000000000000000000000", + "normalizer": "500000000495518454573419559471507999/500000000000000000000000000000000000", + "normalized_balance": "499999999424674562079327169156970711824127968003/500000000495518454573419559471507999000000000000", + "sign": 1, + "multiplicative_odds_bound_checked": true + } + ], + "at_least_three_distinct_roots": true, + "root_intervals": [ + [ + "1/1000", + "1/4" + ], + [ + "1/4", + "3/4" + ], + [ + "3/4", + "999/1000" + ] + ], + "not_claimed": "This is not a product local-field source; arbitrary marks do not inherit finite monotonicity. All roots can still concentrate asymptotically under an oscillation bound.", + "elapsed_seconds": 0.26406363399996735 +} diff --git a/results/research-control-20260912/oblique-balance-controls.json b/results/research-control-20260912/oblique-balance-controls.json new file mode 100644 index 00000000..bdb9da78 --- /dev/null +++ b/results/research-control-20260912/oblique-balance-controls.json @@ -0,0 +1,948 @@ +{ + "schema": "matching-one.oblique-balance-controls.v1", + "scope": "arbitrary HNF square-cell tori, root odds not full birth CDF", + "reduced_hnf_bases_checked": 2080, + "small_controls": [ + { + "hnf": [ + 10, + 3, + 1 + ], + "N": 10, + "u": [ + 3, + 1 + ], + "v": [ + -1, + 3 + ], + "systole_squared": 10, + "configurations": 1024, + "models": { + "NN": { + "degree": 4, + "rank_totals": [ + 548, + 310, + 166 + ], + "rank_counts_by_occupation": [ + [ + 1, + 10, + 45, + 120, + 190, + 152, + 30, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 20, + 100, + 150, + 40, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 30, + 80, + 45, + 10, + 1 + ] + ], + "slabs": 1, + "entry_counts": [ + 3 + ], + "exact_probability_checks": [ + { + "p": "1/32", + "P0": "70367445250103/70368744177664", + "P2": "15066233/562949953421312", + "harris_lower": "1742941578369043307539888317873098704694693205885177392749764153224871291649/1809251394333065553493296640760748560207343510400633813116524750123642650624", + "crossing_product": "64465/16777216" + }, + { + "p": "1/16", + "P0": "68699896875/68719476736", + "P2": "899513/549755813888", + "harris_lower": "1392509326771622651729030943040867868556920539786771962890625/1606938044258990275541962092341162602522202993782792835301376", + "crossing_product": "7913/524288" + }, + { + "p": "1/8", + "P0": "66827033/67108864", + "P2": "50873/536870912", + "harris_lower": "839135028346006581446525741039202165601587649/1427247692705959881058285969449495136382746624", + "crossing_product": "949/16384" + } + ] + }, + "matching": { + "degree": 8, + "rank_totals": [ + 166, + 310, + 548 + ], + "rank_counts_by_occupation": [ + [ + 1, + 10, + 45, + 80, + 30, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 40, + 150, + 100, + 20, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 30, + 152, + 190, + 120, + 45, + 10, + 1 + ] + ], + "slabs": 1, + "entry_counts": [ + 4 + ], + "exact_probability_checks": [ + { + "p": "1/32", + "P0": "562316119755833/562949953421312", + "P2": "1947239303/70368744177664", + "harris_lower": "2709876601198924067999770662308827983414370987226565475180178880397075437451839219911130979577236158393307428272859219682753294351554049/2907354897182427562197295231552018137414565442749272241125960796722557152453591693304764202855054262243050086425064711734138406514458624", + "crossing_product": "76919/8388608" + }, + { + "p": "1/16", + "P0": "545212265625/549755813888", + "P2": "29198611/68719476736", + "harris_lower": "1819412698446503420704983031270159985893762070007478309741909196031628734783909037566118373668543865712890625/2348542582773833227889480596789337027375682548908319870707290971532209025114608443463698998384768703031934976", + "crossing_product": "9019/262144" + }, + { + "p": "1/8", + "P0": "507420137/536870912", + "P2": "411485/67108864", + "harris_lower": "805924509784162745363466577115925579074727660723508169899168204851368794221310849/1897137590064188545819787018382342682267975428761855001222473056385648716020711424", + "crossing_product": "989/8192" + } + ] + } + }, + "complementary_rank_identity": true + }, + { + "hnf": [ + 13, + 5, + 1 + ], + "N": 13, + "u": [ + -2, + -3 + ], + "v": [ + 3, + -2 + ], + "systole_squared": 13, + "configurations": 8192, + "models": { + "NN": { + "degree": 4, + "rank_totals": [ + 4629, + 2340, + 1223 + ], + "rank_counts_by_occupation": [ + [ + 1, + 13, + 78, + 286, + 715, + 1235, + 1352, + 780, + 169, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 52, + 364, + 858, + 780, + 260, + 26, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 78, + 338, + 455, + 260, + 78, + 13, + 1 + ] + ], + "slabs": 2, + "entry_counts": [ + 3, + 3 + ], + "exact_probability_checks": [ + { + "p": "1/32", + "P0": "36893432919113870559/36893488147419103232", + "P2": "79329963233/36893488147419103232", + "harris_lower": "65112996092075431071352470353870923953811474493564398525906821797081585005671032511409437610258817/68351585149469122636640694597425667667286544715412888638305331450311031224980497600734786781970432", + "crossing_product": "26100481152769/1152921504606846976" + }, + { + "p": "1/16", + "P0": "4503392616459375/4503599627370496", + "P2": "1169067121/4503599627370496", + "harris_lower": "1537933462594579189819026263678591093086705405865595729348576634944840087890625/1852673427797059126777135760139006525652319754650249024631321344126610074238976", + "crossing_product": "96466769281/281474976710656" + }, + { + "p": "1/8", + "P0": "549025546167/549755813888", + "P2": "16042937/549755813888", + "harris_lower": "25175691347626988784900290160633027171330216692246794904033/50216813883093446110686315385661331328818843555712276103168", + "crossing_product": "333829441/68719476736" + } + ] + }, + "matching": { + "degree": 8, + "rank_totals": [ + 1223, + 2340, + 4629 + ], + "rank_counts_by_occupation": [ + [ + 1, + 13, + 78, + 260, + 455, + 338, + 78, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 26, + 260, + 780, + 858, + 364, + 52, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 169, + 780, + 1352, + 1235, + 715, + 286, + 78, + 13, + 1 + ] + ], + "slabs": 1, + "entry_counts": [ + 5 + ], + "exact_probability_checks": [ + { + "p": "1/32", + "P0": "36864447490468435583/36893488147419103232", + "P2": "166834355225409/36893488147419103232", + "harris_lower": "115567141009025919948952337857865499997774913583716000518710804933053468910962894307747444568649822486849281353481203001099702630556074539989684810749672383588457474621436306177/126633165554229521438977290762059361297987250739820462036000284719563379254544315991201997343356439034674007770120263341747898897565056619503383631412169301973302667340133957632", + "crossing_product": "87076745/8589934592" + }, + { + "p": "1/16", + "P0": "4475878832109375/4503599627370496", + "P2": "582773961121/4503599627370496", + "harris_lower": "546903355481895464449599350538689873488201336580068188573091781548743256058865832065021448566942854476962550520606910134896519814761962890625/762145642166990290864647761179972242614403843424065222377723867096038022172794340849684107193235344521442121855812163792833978437326241529856", + "crossing_product": "2561989/67108864" + }, + { + "p": "1/8", + "P0": "524874424991/549755813888", + "P2": "1798251729/549755813888", + "harris_lower": "1507240908261826987166196534731022531389984306031920271422892954727434318908925359468543651277371060873153/4586997231980143023221641790604173881593129978336562247475177678773845752176969616140037106220251373109248", + "crossing_product": "70499/524288" + } + ] + } + }, + "complementary_rank_identity": true + }, + { + "hnf": [ + 5, + 2, + 3 + ], + "N": 15, + "u": [ + 2, + 3 + ], + "v": [ + -3, + 3 + ], + "systole_squared": 13, + "configurations": 32768, + "models": { + "NN": { + "degree": 4, + "rank_totals": [ + 18641, + 9596, + 4531 + ], + "rank_counts_by_occupation": [ + [ + 1, + 15, + 105, + 455, + 1365, + 2970, + 4670, + 4965, + 3120, + 900, + 75, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 33, + 335, + 1455, + 3045, + 3085, + 1368, + 255, + 20, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 15, + 270, + 1020, + 1560, + 1110, + 435, + 105, + 15, + 1 + ] + ], + "slabs": 2, + "entry_counts": [ + 3, + 3 + ], + "exact_probability_checks": [ + { + "p": "1/32", + "P0": "37778894609267823675041/37778931862957161709568", + "P2": "21172724770531/37778931862957161709568", + "harris_lower": "72765286789198551808184810101967110045711724161201710923005830699379355834999847868235526083381825958449066123393/76957043352332967211482500195592995713046365762627825523336510555167425334955489475418488779072100860950445293568", + "crossing_product": "26100481152769/1152921504606846976" + }, + { + "p": "1/16", + "P0": "1152885213717890625/1152921504606846976", + "P2": "97436138851/1152921504606846976", + "harris_lower": "1643225512184136475375677596394818925712626418798075473464509419933941219377379058837890625/2037035976334486086268445688409378161051468393665936250636140449354381299763336706183397376", + "crossing_product": "96466769281/281474976710656" + }, + { + "p": "1/8", + "P0": "35149792046033/35184372088832", + "P2": "457869091/35184372088832", + "harris_lower": "24307918725368087477752872291281630206027574820723031879681409949857/53919893334301279589334030174039261347274288845081144962207220498432", + "crossing_product": "333829441/68719476736" + } + ] + }, + "matching": { + "degree": 8, + "rank_totals": [ + 4531, + 9596, + 18641 + ], + "rank_counts_by_occupation": [ + [ + 1, + 15, + 105, + 435, + 1110, + 1560, + 1020, + 270, + 15, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 20, + 255, + 1368, + 3085, + 3045, + 1455, + 335, + 33, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 75, + 900, + 3120, + 4965, + 4670, + 2970, + 1365, + 455, + 105, + 15, + 1 + ] + ], + "slabs": 1, + "entry_counts": [ + 5 + ], + "exact_probability_checks": [ + { + "p": "1/32", + "P0": "37755405920926951969981/37778931862957161709568", + "P2": "88069632579072191/37778931862957161709568", + "harris_lower": "141066623849834986071666064474484897950983336431717937704837978703283591618384583905752140309746378694443077200948274916113170062373505705736490824349329162659367809195645625365315779376184181765987598593/156764265941034957982331212844852467344711417043899710759469297619722251722129607859661177881884230709880082871203965476543290384119266386721367084105368877945996036265148061460008137163052639879920877568", + "crossing_product": "87076745/8589934592" + }, + { + "p": "1/16", + "P0": "1147118630305078125/1152921504606846976", + "P2": "86747858506351/1152921504606846976", + "harris_lower": "2454125862721842224779495544539372446383906315853513190137374234901927606685887958837299430948173674279468792773324058081931980286294615516538235165123199462890625/3599131035634557106248430806148785487095757694641533306480604458089470064537190296255232548883112685719936728506816716098566612844395439751206812144692131084107776", + "crossing_product": "2561989/67108864" + }, + { + "p": "1/8", + "P0": "33793437229573/35184372088832", + "P2": "80181736391/35184372088832", + "harris_lower": "22879237450003337113015432338545965044495008104266599728445239199537291126943986524672235470120251110482564155393925416257/82631996098781074868989413504096379978550585370535152410581099409300723904538918228148651304964410605948901503127919788032", + "crossing_product": "70499/524288" + } + ] + } + }, + "complementary_rank_identity": true + }, + { + "hnf": [ + 4, + 1, + 4 + ], + "N": 16, + "u": [ + 4, + 0 + ], + "v": [ + 1, + 4 + ], + "systole_squared": 16, + "configurations": 65536, + "models": { + "NN": { + "degree": 4, + "rank_totals": [ + 37153, + 19262, + 9121 + ], + "rank_counts_by_occupation": [ + [ + 1, + 16, + 120, + 560, + 1816, + 4304, + 7568, + 9648, + 8240, + 4000, + 848, + 32, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 4, + 64, + 440, + 1776, + 4422, + 6352, + 4576, + 1472, + 156, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 16, + 208, + 1088, + 2584, + 2864, + 1664, + 560, + 120, + 16, + 1 + ] + ], + "slabs": 1, + "entry_counts": [ + 4 + ], + "exact_probability_checks": [ + { + "p": "1/32", + "P0": "1208920630644663754823713/1208925819614629174706176", + "P2": "632745871449121/1208925819614629174706176", + "harris_lower": "2432498204589237916249841702572066963318584460304820767490179887647726152225359709329891726234704494913380166736833116161/2582249878086908589655919172003011874329705792829223512830659356540647622016841194629645353280137831435903171972747493376", + "crossing_product": "4288679935/1099511627776" + }, + { + "p": "1/16", + "P0": "18445335664990190625/18446744073709551616", + "P2": "1365764382241/18446744073709551616", + "harris_lower": "1698544699051815429819199782677450504846741987186912684278692129556017350527718524853668212890625/2135987035920910082395021706169552114602704522356652769947041607822219725780640550022962086936576", + "crossing_product": "66716671/4294967296" + }, + { + "p": "1/8", + "P0": "281062721878561/281474976710656", + "P2": "3097084705/281474976710656", + "harris_lower": "755319958553362582196215000706994095391894832404326769597340451371906561/1766847064778384329583297500742918515827483896875618958121606201292619776", + "crossing_product": "1024255/16777216" + } + ] + }, + "matching": { + "degree": 8, + "rank_totals": [ + 9121, + 19262, + 37153 + ], + "rank_counts_by_occupation": [ + [ + 1, + 16, + 120, + 560, + 1664, + 2864, + 2584, + 1088, + 208, + 16, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 156, + 1472, + 4576, + 6352, + 4422, + 1776, + 440, + 64, + 4, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 32, + 848, + 4000, + 8240, + 9648, + 7568, + 4304, + 1816, + 560, + 120, + 16, + 1 + ] + ], + "slabs": 1, + "entry_counts": [ + 4 + ], + "exact_probability_checks": [ + { + "p": "1/32", + "P0": "1208759999383464478048801/1208925819614629174706176", + "P2": "1621174642078451233/1208925819614629174706176", + "harris_lower": "4928550648797484923731528167526817360209164187271930070967237587327242875999568185727635669124706539965797854964298448339820024317526947927106261827425065767699029933299851923854444043949878344368501046529704278814721/5515652263101987298728728207430913795608113109085112352897269396216198887424215820128660001943808587833784893551335930816647064191168732319583111500951066614122648616177179922993422016587311577585463592732098692120576", + "crossing_product": "12088738301/1099511627776" + }, + { + "p": "1/16", + "P0": "18409934196965390625/18446744073709551616", + "P2": "942421392702241/18446744073709551616", + "harris_lower": "164395510976011314925113724450943968209956494957559540003486700181998710628735545488400429225122152200059776637189239538623674111555710646061703382875159097433447418212890625/247330401473104534060502521019647190035131349101211839914063056092897225106531867170316401061243044989597671426016139339351365034306751209967546155101893167916606772148699136", + "crossing_product": "176775421/4294967296" + }, + { + "p": "1/8", + "P0": "274308528016033/281474976710656", + "P2": "520642661281/281474976710656", + "harris_lower": "2818843611228983000053582715100877588194066400423703054988810698938861408467256593240024993505867685705601897807889219208598973441/11090678776483259438313656736572334813745748301503266300681918322458485231222502492159897624416558312389564843845614287315896631296", + "crossing_product": "2402429/16777216" + } + ] + } + }, + "complementary_rank_identity": true + } + ], + "graph_configuration_checks": 215040, + "complement_pair_checks": 107520, + "large_fixed_structure_controls": [ + { + "hnf": [ + 64, + 0, + 80 + ], + "N": 5120, + "systole_squared": 4096, + "degree": 4, + "slabs": 10, + "fixed_masks": 10, + "all_slabs_vertex_disjoint": true + }, + { + "hnf": [ + 64, + 0, + 80 + ], + "N": 5120, + "systole_squared": 4096, + "degree": 8, + "slabs": 10, + "fixed_masks": 10, + "all_slabs_vertex_disjoint": true + }, + { + "hnf": [ + 65, + 17, + 130 + ], + "N": 8450, + "systole_squared": 4225, + "degree": 4, + "slabs": 16, + "fixed_masks": 10, + "all_slabs_vertex_disjoint": true + }, + { + "hnf": [ + 65, + 17, + 130 + ], + "N": 8450, + "systole_squared": 4225, + "degree": 8, + "slabs": 16, + "fixed_masks": 10, + "all_slabs_vertex_disjoint": true + }, + { + "hnf": [ + 4225, + 268, + 1 + ], + "N": 4225, + "systole_squared": 4225, + "degree": 4, + "slabs": 8, + "fixed_masks": 10, + "all_slabs_vertex_disjoint": true + }, + { + "hnf": [ + 4225, + 268, + 1 + ], + "N": 4225, + "systole_squared": 4225, + "degree": 8, + "slabs": 8, + "fixed_masks": 10, + "all_slabs_vertex_disjoint": true + }, + { + "hnf": [ + 4273, + 1200, + 1 + ], + "N": 4273, + "systole_squared": 4273, + "degree": 4, + "slabs": 8, + "fixed_masks": 10, + "all_slabs_vertex_disjoint": true + }, + { + "hnf": [ + 4273, + 1200, + 1 + ], + "N": 4273, + "systole_squared": 4273, + "degree": 8, + "slabs": 8, + "fixed_masks": 10, + "all_slabs_vertex_disjoint": true + } + ], + "finite_subcritical_sign_certificates": [ + { + "hnf": [ + 4096, + 113, + 4096 + ], + "shortest_u": [ + 4096, + 0 + ], + "completion_v": [ + 113, + 4096 + ], + "systole_squared": 16777216, + "slabs": 8, + "entry_count_upper": 16384, + "path_length_lower": 45, + "degree": 4, + "p": "1/10", + "arm_upper": "984770902183611232881/2500000000000000000000000000000000000000000000", + "all_lengths_not_claimed_from_one_instance": true, + "ceil_N_over_slabs": 2097152, + "bernoulli_lower": "1192092895507812499015229097816388767119/1192092895507812500000000000000000000000", + "strict_sign_certified": true + }, + { + "hnf": [ + 4096, + 113, + 4096 + ], + "shortest_u": [ + 4096, + 0 + ], + "completion_v": [ + 113, + 4096 + ], + "systole_squared": 16777216, + "slabs": 8, + "entry_count_upper": 16384, + "path_length_lower": 45, + "degree": 8, + "p": "1/20", + "arm_upper": "15286700631942576193765185769276826401/87960930222080000000000000000000000000000000000000000000000", + "all_lengths_not_claimed_from_one_instance": true, + "ceil_N_over_slabs": 2097152, + "bernoulli_lower": "41943039999999984713299368057423806234814230723173599/41943040000000000000000000000000000000000000000000000", + "strict_sign_certified": true + } + ], + "elapsed_seconds": 2.331906613000001 +} diff --git a/scripts/jordan_trace_controls.py b/scripts/jordan_trace_controls.py new file mode 100644 index 00000000..1824b4c9 --- /dev/null +++ b/scripts/jordan_trace_controls.py @@ -0,0 +1,158 @@ +#!/usr/bin/env python3 +"""Exact controls: a linear eigenvalue split does not certify semisimplicity. + +Build positive stochastic / irreducible Markov families with identical ordinary +trace data at every parameter and length, but different Jordan structure and +ordinary probability readouts. No percolation or LCFT identification is made. +""" +from __future__ import annotations +import argparse +import json +from pathlib import Path +import time +import sympy as sp + + +def matrices(): + e=sp.ones(3,1);u=sp.Matrix([1,-1,0]);v=sp.Matrix([1,1,-2]) + P=e*e.T/3 + Q=sp.eye(3)-P + D=u*u.T/2-v*v.T/6 + N=u*v.T/6 + return P,Q,D,N + + +def markov_pair(t): + P,Q,D,N=matrices() + GD=-Q+t*D + GJ=GD+N/2 + return GD,GJ + + +def encode_matrix(a):return [[str(x) for x in row] for row in a.tolist()] + + +def run_checks(): + start=time.perf_counter();t,x,z,s=sp.symbols('t x z s');P,Q,D,N=matrices() + O=sp.zeros(3) + assert P*P==P and Q*Q==Q and P*Q==O + assert N*N==O and N!=O and P*N==O and N*P==O + assert D*D==Q and D*N==N and N*D==-N + GD,GJ=markov_pair(t) + assert GD*sp.ones(3,1)==sp.zeros(3,1)==GJ*sp.ones(3,1) + assert sp.ones(1,3)*GD==sp.zeros(1,3)==sp.ones(1,3)*GJ + char=z*((z+1)**2-t*t) + assert sp.expand(GD.charpoly(z).as_expr()-char)==0 + assert sp.expand(GJ.charpoly(z).as_expr()-char)==0 + minima=[] + for G in (GD,GJ): + vals=[G[i,j].subs(t,a) for i in range(3) for j in range(3) if i!=j + for a in (-sp.Rational(1,4),sp.Rational(1,4))] + minima.append(min(vals)) + assert minima==[sp.Rational(1,6),sp.Rational(1,12)] + TD=sp.eye(3)+GD/2;TJ=sp.eye(3)+GJ/2 + for T in (TD,TJ): + assert min(T.subs(t,a)[i,j] for i in range(3) for j in range(3) + for a in (-sp.Rational(1,4),sp.Rational(1,4)))>0 + G0D=GD.subs(t,0);G0J=GJ.subs(t,0) + assert (G0D+sp.eye(3)).nullspace().__len__()==2 + assert len((G0J+sp.eye(3)).nullspace())==1 + assert G0D*(G0D+sp.eye(3))==O + assert G0J*(G0J+sp.eye(3))!=O + assert G0J*(G0J+sp.eye(3))**2==O + + # Polynomial trace equality on a finite grid of lengths is a regression + # check. The all-length proof follows from triangular blocks / spectrum. + AD=sp.eye(3);AJ=sp.eye(3);thermal_checks=0 + traces=[] + for m in range(13): + a=sp.expand(sp.trace(AD));b=sp.expand(sp.trace(AJ)) + expected=1+((1+t)/2)**m+((1-t)/2)**m + assert sp.expand(a-expected)==0==sp.expand(a-b) + for order in range(5): + assert sp.diff(a-b,t,order)==0;thermal_checks+=1 + traces.append(str(sp.factor(a))) + AD=(AD*TD).applyfunc(sp.expand);AJ=(AJ*TJ).applyfunc(sp.expand) + + # A completely ordinary probability response observes the nilpotent. + yd=[];yj=[];AD=sp.eye(3);AJ=sp.eye(3) + for m in range(12): + yd.append(AD[0,2]);yj.append(AJ[0,2]) + expectedD=(1-sp.Rational(1,2)**m)/3 + expectedJ=expectedD-sp.Rational(m,6)*sp.Rational(1,2)**m + assert yd[-1]==expectedD and yj[-1]==expectedJ + assert 0<=yd[-1]<=1 and 0<=yj[-1]<=1 + AD=AD*TD.subs(t,0);AJ=AJ*TJ.subs(t,0) + HD=sp.Matrix(2,2,lambda i,j:yd[i+j]);HJ=sp.Matrix(3,3,lambda i,j:yj[i+j]) + detD=sp.factor(HD.det());detJ=sp.factor(HJ.det()) + assert detD!=0 and detJ!=0 + # Resolve exactly the fixed-operator minimal polynomials on the readout. + for values,poly in [(yd,(x-1)*(x-sp.Rational(1,2))), + (yj,(x-1)*(x-sp.Rational(1,2))**2)]: + cc=list(reversed(sp.Poly(poly,x).all_coeffs())) + assert all(sum(cc[k]*values[i+k] for k in range(len(cc)))==0 + for i in range(len(values)-len(cc)+1)) + + # Counterexample 1: analytic linear split THROUGH a genuine Jordan block. + C1=sp.Matrix([[1+t,1],[0,1-t]]) + assert sp.expand(C1.charpoly(x).as_expr()-(x-1-t)*(x-1+t))==0 + assert len((C1.subs(t,0)-sp.eye(2)).nullspace())==1 + # Counterexample 2: semisimple at zero and pointwise diagonalizable, yet + # eigenbranches +/-t^(3/2) fail holomorphicity at zero. + C2=sp.Matrix([[0,t],[t*t,0]]) + assert C2.subs(t,0)==sp.zeros(2) + assert sp.expand(C2.charpoly(x).as_expr()-(x*x-t**3))==0 + # Counterexample 3: the same issue occurs even for an AFFINE pencil. + C3=sp.Matrix([[0,t,0],[0,0,t],[t,0,1]]) + cp=sp.expand(C3.charpoly(x).as_expr()) + assert sp.expand(cp-(x*x*(x-1)-t**3))==0 + disc=sp.factor(sp.discriminant(cp,x)) + assert disc==-t**3*(4+27*t**3) + assert len(C3.subs(t,0).nullspace())==2 + + # The parameter jet is a different matrix from the physical matrix. + A=sp.diag(1+t,1-t);A0=A.subs(t,0);A1=A.diff(t) + jet=A0.row_join(A1).col_join(sp.zeros(2).row_join(A0)) + assert (jet-sp.eye(4))**2==sp.zeros(4) and jet!=sp.eye(4) + for m in range(1,10): + assert (jet**m)[:2,2:]==(A**m).diff(t).subs(t,0) + + return {'schema':'matching-one.jordan-trace-controls.v1', + 'scope':'exact finite analytic matrix controls; NOT a percolation or LCFT candidate identification', + 'domain':'-1/4 <= t <= 1/4','sympy_version':sp.__version__, + 'P':encode_matrix(P),'Q':encode_matrix(Q),'D':encode_matrix(D),'N':encode_matrix(N), + 'semisimple_generator':encode_matrix(GD),'defective_at_zero_generator':encode_matrix(GJ), + 'generator_offdiagonal_lower_bounds':list(map(str,minima)), + 'stationary_distribution':['1/3']*3, + 'shared_generator_characteristic_polynomial':str(sp.factor(char)), + 'shared_stochastic_power_trace':'1+((1+t)/2)^m+((1-t)/2)^m', + 'shared_semigroup_trace':'1+2*exp(-s)*cosh(s*t)', + 'nilpotent_coefficient':'1/2','geometric_multiplicities_at_minus_one':[2,1], + 'minimal_generator_polynomials':['z*(z+1)','z*(z+1)^2'], + 'thermal_trace_regressions':thermal_checks,'regression_max_length':12, + 'all_length_proof':'ordinary traces depend only on eigenvalues with algebraic multiplicities; both analytic families have identical characteristic polynomial', + 'probability_readout':{'source':'delta_state_1','readout':'indicator_state_3', + 'semisimple':'(1-2^(-m))/3','Jordan':'(1-2^(-m))/3-m*2^(-m)/6', + 'semisimple_values':list(map(str,yd)),'Jordan_values':list(map(str,yj)), + 'minimal_recurrence_orders':[2,3],'hankel_determinants':[str(detD),str(detJ)], + 'continuous_time_difference':'-s*exp(-s)/6'}, + 'counterexamples':{ + 'linear_split_defective':encode_matrix(C1), + 'nonlinear_pencil_semisimple_Puiseux':encode_matrix(C2), + 'affine_pencil_semisimple_Puiseux':encode_matrix(C3), + 'affine_pencil_characteristic':str(cp),'affine_pencil_discriminant':str(disc), + 'analytic_branch_obstruction':'an analytic root with x(0)=0 would have integer order k; x^2*(x-1)=t^3 forces 2k=3'}, + 'jet_lift':encode_matrix(jet),'jet_lift_nontrivial_Jordan':True, + 'not_claimed':['No new general Jordan or realization theorem.', + 'No numerical eigenvalue fit certifies exact Jordan structure.', + 'Noncommuting marks / specified matrix elements can distinguish these examples.', + 'The Markov pair is not a model of square-site percolation.'], + 'elapsed_seconds':time.perf_counter()-start} + +if __name__=='__main__': + ap=argparse.ArgumentParser(description=__doc__);ap.add_argument('--out',type=Path) + args=ap.parse_args();text=json.dumps(run_checks(),indent=2,allow_nan=False)+'\n' + if args.out: + args.out.parent.mkdir(parents=True,exist_ok=True) + with args.out.open('x') as f:f.write(text) + else:print(text,end='') diff --git a/scripts/marked_balance_controls.py b/scripts/marked_balance_controls.py new file mode 100644 index 00000000..b42d74c6 --- /dev/null +++ b/scripts/marked_balance_controls.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python3 +"""Positive source reweightings preserve odds bounds but need not a unique root. + +An exact 4x4 percolation example gives at least three balance roots under one +positive, p-independent, NONPRODUCT configuration weight. This is a counterexample +to finite monotonicity under arbitrary marks, not to the asymptotic root theorem. +""" +from __future__ import annotations +from fractions import Fraction as F +from pathlib import Path +import argparse,json,time +from oblique_torus_balance import Torus,NN,rank_lift,probability + + +def report(): + start=time.perf_counter();t=Torus(4,0,4);edges=t.edges(NN);n=t.n + cross=sum(1<0 and w2>0 and den>0 + ratio=w2/w0;original=P2/P0 + assert original/F(A+1)<=ratio<=(A+1)*original + sign=(numerator>0)-(numerator<0);sgns.append(sign) + checks.append({'p':str(p),'unnormalized_balance':str(numerator), + 'normalizer':str(den),'normalized_balance':str(numerator/den), + 'sign':sign,'multiplicative_odds_bound_checked':True}) + assert sgns==[-1,1,-1,1] + return {'schema':'matching-one.marked-balance-controls.v1','N':n, + 'scope':'axis 4x4, uniform base Bernoulli law, one positive nonproduct p-independent mark', + 'physical_configurations':1< int: + """Nearest integer, with a fixed tie convention (towards +infinity).""" + return (2*q.numerator+q.denominator)//(2*q.denominator) + +def reduced_basis(a, b): + """Lagrange/Gauss reduction, using integer arithmetic only. + + Output u is shortest; v is a reduced completion. The proof is in the note. + Neither u nor v need be primitive in ambient Z^2. + """ + u, v = tuple(a), tuple(b) + if det(u,v)==0: raise ValueError('periods must be independent') + for _ in range(10000): + if norm2(v)=3*norm2(u)**2 + return u,v + +@dataclass(frozen=True) +class Torus: + """HNF columns (a,0),(b,c), 0<=b=1 and 0<=b>root)&1 or root in positions: continue + positions[root]=(0,0); stack=[root] + while stack: + a=stack.pop(); x,y=positions[a] + for b,dx,dy in edges[a]: + if not (mask>>b)&1: continue + proposed=(x+dx,y+dy) + if b not in positions: + positions[b]=proposed; stack.append(b) + else: + delta=(proposed[0]-positions[b][0],proposed[1]-positions[b][1]) + if delta!=(0,0): + if first is None: first=delta + elif det(first,delta): return 2 + return int(first is not None) + + +def slab_geometry(torus: Torus, steps=NN, *, coarse=False): + """Exact transverse bands in q(x)=det(u,x) modulo N. + + The theorem uses B=|u|^2/8. Tiny controls use B=2D+|u|^2/32, + still satisfying (B-2D)/|u| > r, with r=|u|/64. + The offset 1/17 avoids integer vertex levels and 1/8,1/32 boundaries. + """ + u,v=torus.basis(); s=norm2(u); n=torus.n + D=max(abs(det(u,e)) for e in steps) + B=F(s,8) if coarse else 2*D+F(s,32) + k=int(F(n)/B) + if k<1: raise ValueError('chosen bands do not fit') + if B-2*D<=F(s,64): raise ValueError('slab is too thin for the local arm radius') + # Local first-exit support fits in radius r+sqrt(2). Use a rational + # upper bound 3/2 instead of sqrt(2) for the exact injectivity check. + if F(s)*(F(1,2)-F(1,64))**2<=F(9,4): + raise ValueError('control torus too short for this local support') + qs=[(F(det(u,x))-F(1,17))%n for x in torus.points] + edges=torus.edges(steps) + slabs=[] + for j in range(k): + low=j*B; high=(j+1)*B + nodes=[i for i,q in enumerate(qs) if lowhigh-D] + inside=set(nodes); adj={} + for i in nodes: + adj[i]=[z for z,dx,dy in edges[i] if z in inside + and qs[z]-qs[i]==det(u,(dx,dy))] + assert len(bottom)<=4*(isqrt(s)+1) + slabs.append({'nodes':nodes,'bottom':bottom,'top':top,'adj':adj}) + joined=[i for slab in slabs for i in slab['nodes']] + assert len(joined)==len(set(joined)) + return {'u':u,'v':v,'systole_squared':s,'D':D,'B':B,'count':k,'slabs':slabs} + + +def has_crossing(mask, slab): + target=set(slab['top']); seen={i for i in slab['bottom'] if (mask>>i)&1} + todo=list(seen) + while todo: + i=todo.pop() + if i in target: return True + for j in slab['adj'][i]: + if (mask>>j)&1 and j not in seen: seen.add(j);todo.append(j) + return False + + +def probability(counts, p): + n=len(counts)-1 + return sum((F(c)*p**k*(1-p)**(n-k) for k,c in enumerate(counts)),F(0)) + +def sign_certificate(torus, degree, p): + """A rational sign test using elementary self-avoiding-path domination. + + For r=ell/64 and max step<=sqrt(2), at least L edges are needed. + Use a slightly smaller integer L with L^2*8192 <= ell^2. + a_r <= d (d-1)^(L-1) p^(L+1), valid for L>=1. + """ + u,v=torus.basis(); s=norm2(u); n=torus.n + if s<64**2: raise ValueError('asymptotic geometry certificate needs ell>=64') + L=isqrt(s//8192) + if L<1: raise ValueError('path certificate needs at least one edge') + alpha=degree*(degree-1)**(L-1)*p**(L+1) + B=F(s,8); k=int(F(n)/B) + M=4*(isqrt(s)+int(isqrt(s)**2= 1-r*alpha; avoids enormous powers. + good=(0=(1-a)**n + product=F(1) + for e,slab in zip(probs,geometry['slabs']): + assert e<=len(slab['bottom'])*a + product*=e + assert P2<=product + checks.append({'p':str(p),'P0':str(P0),'P2':str(P2), + 'harris_lower':str((1-a)**n),'crossing_product':str(product)}) + models[name]={'degree':len(steps),'rank_totals':list(map(sum,bins)), + 'rank_counts_by_occupation':bins,'slabs':geometry['count'], + 'entry_counts':[len(t['bottom']) for t in geometry['slabs']], + 'exact_probability_checks':checks} + ranks.append(rs) + assert all(ranks[0][m]+ranks[1][allmask^m]==2 for m in range(1<0 for i in range(3) for k in range(3) if i!=k) + assert determinant(G)==0 + matrices+=1 + T0=add(I,scale(G0,F(1,2)));T1=add(I,scale(G1,F(1,2))) + A0=I;A1=I + for m in range(21): + expected=1+((1+t)/2)**m+((1-t)/2)**m + assert trace(A0)==expected==trace(A1) + if t==0: + assert A0[0][2]==(1-F(1,2)**m)/3 + assert A1[0][2]==(1-F(1,2)**m)/3-F(m,6)*F(1,2)**m + A0=mm(A0,T0);A1=mm(A1,T1);moments+=1 + yd=[F(x) for x in j['probability_readout']['semisimple_values']] + yj=[F(x) for x in j['probability_readout']['Jordan_values']] + a=determinant([[yd[i+k] for k in range(2)] for i in range(2)]) + b=determinant([[yj[i+k] for k in range(3)] for i in range(3)]) + assert [str(a),str(b)]==j['probability_readout']['hankel_determinants'] + assert a and b + return {'schema':'matching-one.jordan-trace-fraction-verification.v1', + 'arithmetic':'stdlib Fraction; independently reconstructed matrices; Gaussian determinant', + 'generator_instances':matrices,'trace_moments':moments, + 'hankel_determinants':[str(a),str(b)],'success':True, + 'elapsed_seconds':time.perf_counter()-start} + +if __name__=='__main__': + ap=argparse.ArgumentParser(description=__doc__);ap.add_argument('--input',type=Path,required=True);ap.add_argument('--out',type=Path) + a=ap.parse_args();text=json.dumps(verify(a.input),indent=2)+'\n' + if a.out: + a.out.parent.mkdir(parents=True,exist_ok=True) + with a.out.open('x') as f:f.write(text) + else:print(text,end='') diff --git a/tests/test_jordan_trace_controls.py b/tests/test_jordan_trace_controls.py new file mode 100644 index 00000000..ac0fca57 --- /dev/null +++ b/tests/test_jordan_trace_controls.py @@ -0,0 +1,38 @@ +import sys,unittest,tempfile,json +from pathlib import Path +from fractions import Fraction as F +sys.path.insert(0,str(Path(__file__).resolve().parents[1]/'scripts')) +import sympy as s +import jordan_trace_controls as j +import verify_jordan_trace_controls as v + +class TestJordanControls(unittest.TestCase): + def test_nilpotent_and_commutation(self): + P,Q,D,N=j.matrices() + self.assertEqual(N*N,s.zeros(3));self.assertNotEqual(N,s.zeros(3)) + self.assertEqual(D*N,N);self.assertEqual(N*D,-N) + def test_positive_markov_and_shared_stationary(self): + for t in [-s.Rational(1,4),0,s.Rational(1,4)]: + for G in j.markov_pair(t): + self.assertEqual(G*s.ones(3,1),s.zeros(3,1)) + self.assertEqual(s.ones(1,3)*G,s.zeros(1,3)) + self.assertGreater(min(G[i,k] for i in range(3) for k in range(3) if i!=k),0) + def test_jordan_nullities(self): + A,B=j.markov_pair(0) + self.assertEqual(len((A+s.eye(3)).nullspace()),2) + self.assertEqual(len((B+s.eye(3)).nullspace()),1) + def test_probability_readout_not_trace(self): + A,B=j.markov_pair(0);A=s.eye(3)+A/2;B=s.eye(3)+B/2 + self.assertEqual(s.trace(A*A),s.trace(B*B)) + self.assertNotEqual((A*A)[0,2],(B*B)[0,2]) + def test_affine_nonanalytic_pencil(self): + t,x=s.symbols('t x');C=s.Matrix([[0,t,0],[0,0,t],[t,0,1]]) + self.assertEqual(s.expand(C.charpoly(x).as_expr()-(x*x*(x-1)-t**3)),0) + self.assertEqual(len(C.subs(t,0).nullspace()),2) + def test_independent_fraction_validator(self): + with tempfile.TemporaryDirectory() as d: + p=Path(d)/'report.json';p.write_text(json.dumps(j.run_checks())) + r=v.verify(p);self.assertTrue(r['success']) + self.assertEqual(r['hankel_determinants'],['-1/36','-1/6912']) + +if __name__=='__main__':unittest.main() diff --git a/tests/test_marked_balance_controls.py b/tests/test_marked_balance_controls.py new file mode 100644 index 00000000..0db329d7 --- /dev/null +++ b/tests/test_marked_balance_controls.py @@ -0,0 +1,20 @@ +import sys,unittest +from pathlib import Path +sys.path.insert(0,str(Path(__file__).resolve().parents[1]/'scripts')) +import marked_balance_controls as m +from fractions import Fraction as F + +class TestMarkedBalance(unittest.TestCase): + @classmethod + def setUpClass(cls):cls.r=m.report() + def test_three_root_signs(self): + self.assertEqual([x['sign'] for x in self.r['rational_sign_checks']],[-1,1,-1,1]) + self.assertTrue(self.r['at_least_three_distinct_roots']) + def test_positive_normalization(self): + for x in self.r['rational_sign_checks']: + self.assertGreater(F(x['normalizer']),0) + self.assertLessEqual(abs(F(x['normalized_balance'])),1) + def test_odds_oscillation_bound(self): + self.assertTrue(all(x['multiplicative_odds_bound_checked'] for x in self.r['rational_sign_checks'])) + +if __name__=='__main__':unittest.main() diff --git a/tests/test_oblique_torus_balance.py b/tests/test_oblique_torus_balance.py new file mode 100644 index 00000000..247baac0 --- /dev/null +++ b/tests/test_oblique_torus_balance.py @@ -0,0 +1,40 @@ +import sys, unittest +from pathlib import Path +from fractions import Fraction as F +sys.path.insert(0,str(Path(__file__).resolve().parents[1]/'scripts')) +import oblique_torus_balance as o + +class TestObliqueGeometry(unittest.TestCase): + def test_gaussian_basis(self): + for h,n in [((10,3,1),10),((13,5,1),13),((4225,268,1),4225)]: + t=o.Torus(*h);u,v=t.basis() + self.assertEqual(o.norm2(u),n);self.assertEqual(o.det(u,v),t.n) + def test_hnf_identifications(self): + t=o.Torus(5,2,3) + for x in range(-10,11): + for y in range(-7,8): + self.assertEqual(t.reduce(x,y),t.reduce(x+5,y)) + self.assertEqual(t.reduce(x,y),t.reduce(x+2,y+3)) + def test_nonprimitive_ambient_shortest(self): + u,v=o.Torus(64,0,80).basis();self.assertEqual(o.norm2(u),64**2) + def test_slabs_disjoint(self): + for h in ((65,17,130),(4225,268,1)): + t=o.Torus(*h);g=o.slab_geometry(t,o.MATCHING,coarse=True) + nodes=[x for b in g['slabs'] for x in b['nodes']] + self.assertEqual(len(nodes),len(set(nodes))) + self.assertGreaterEqual(g['count']*g['systole_squared'],4*t.n) + def test_all_and_empty_crossings(self): + t=o.Torus(13,5,1);g=o.slab_geometry(t,o.MATCHING) + self.assertTrue(all(o.has_crossing((1<