Skip to content

Three relations the issues asked for, and the collision one of them names - #159

Merged
sotashimozono merged 3 commits into
mainfrom
feat/issues-156-157-158
Sep 14, 2026
Merged

sotashimozono merged 3 commits into
mainfrom
feat/issues-156-157-158

Conversation

@sotashimozono

Copy link
Copy Markdown
Member

Closes #156, closes #158. Addresses the half of #157 that does not reach into
another repository; see below.

#156, a relation with no way to state its domain

CFTEntanglementSlope is dS/d(ln ℓ) = ncuts · c/6 and carries no L, so
nothing tells a caller how large ℓ may be. Out of range it does not refuse, it
returns a number: at ℓ → L the block's complement is a few sites, purity alone
caps S, and no value of ncuts describes that. ncuts is a property of the
region's boundary and cannot encode whether ℓ is still in the scale-invariant
regime.

CFTEntanglementChordSlope states the same law against the chord,
dS/d(ln[(L/π) sin(πℓ/L)]) = ncuts · c/6. The caller supplies L, which is the
missing piece, and the relation is in domain over the whole chain. It reduces to
the existing one as ℓ/L → 0, so that one is the limit and this the general form.

Measured on exact free-fermion ground states of the critical uniform chain, block
at an open end, ncuts = 1, so c/6 = 0.08333:

L against ln ℓ, whole chain against ln[chord], whole chain
64 0.03495 0.08941
128 0.03332 0.08663
256 0.03308 0.08502

The chord column halves its error each time L doubles; the other does not move.
That is the difference between a finite-size correction and a wrong law, and the
test asserts the ratio rather than a threshold, because a threshold cannot tell
the two apart. Restricted to ℓ ≤ L/4 both agree, which is the regime the
existing relation is for and does not state.

#158, two exponents nothing could read

At an infinite-randomness fixed point the exponents a numerical calculation
actually yields are x_m and ψ, through the correlation function at criticality
against DISTANCE. Neither had a relation.

CriticalCorrelationDecay(dlogC_dlogr, x_m::ScalingDimension) = dlogC_dlogr + 2x_m
ActivatedCriticalCorrelation(dloglogC_dlogr, ψ::ActivatedExponent) = dloglogC_dlogr - ψ

Distance is a third scale, by exactly the argument that already separates L from
ξ in the neighbouring relations: ξ diverges at criticality and constrains
nothing there, L is the only scale left, and r inside a large system is
neither.

Anchored on the golden-mean value -2x_m = -(3-√5)/2 = -0.38197, which the
relation recovers to full precision, and on the issue's measured slopes stated in
units of their own published error rather than a tolerance picked to pass. The
average probe sits 1.0σ from the exact value; the typical one, uncorrected, sits
3σ from 1/2. So the claim that these are two probes rather than two routes to
one number is made on the numbers.

#157, the half that is ours

InfiniteRandomness's warning about d already described the hazard; it now
names the sibling lookup that requires the value it warns against
(fetch(Universality{:IsingSDRG}, CentralCharge(); d = 2)), so the hazard is
greppable from the side that triggers it.

The issue's other option, giving the CFT dimension its own keyword, is a breaking
change in the atlas and is a call for its owner, so #157 stays open for that.

Not touched

#4 and #19 are incremental tracks by their own text ("driven by need, not
bulk-copied"; a design space rather than a defect), not items to consume in a pass.

Version

Patch, additive. Three new relations, no signature or behaviour change to an
existing one. Say the word if you want it elsewhere.

Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com

…ames

#156. `CFTEntanglementSlope` carries no `L`, so nothing tells a caller how large
`ℓ` may be, and out of range it returns a number rather than refusing: at ℓ near L
the complement is a few sites, purity alone caps S, and no `ncuts` describes that.
`CFTEntanglementChordSlope` states the same law against the chord, which is in
domain over the whole chain and reduces to the present one as ℓ/L → 0.

MEASURED on exact free-fermion ground states of the critical uniform chain, block
at an open end, so c/6 = 0.08333:

  L     against ln ℓ    against ln[chord]
  64    0.03495         0.08941
  128   0.03332         0.08663
  256   0.03308         0.08502

The chord column halves its error each time L doubles and the other does not move,
which is what separates a finite-size correction from a wrong law. The test asserts
that ratio rather than a threshold, since a threshold cannot tell them apart.

#158. `x_m` and `ψ` are what a ground state yields, through the correlation
function at criticality against DISTANCE, and no relation read either.
`CriticalCorrelationDecay` and `ActivatedCriticalCorrelation` do. Distance is a
third scale by the same argument that already separates L from ξ in the
neighbouring relations. Anchored on the golden-mean value -2x_m = -(3-√5)/2, which
the relation recovers exactly, and on the issue's measured slopes stated in units
of their own published error: the average probe sits 1.0σ from the exact value and
the typical one 3σ, so the assertion that they are not interchangeable probes is
made on the numbers rather than asserted.

#157. Documentation only, and the half that does not reach into another repository.
`InfiniteRandomness`'s warning about `d` now names the sibling lookup that requires
the value it warns against, so the hazard is greppable from the side that triggers
it. Naming the two variables apart is the other option and is a breaking change in
the atlas, so it stays the issue's.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

📚 Docs preview: https://qatlashub.github.io/AbstractQAtlas.jl/previews/PR159/

(updates on each push to this PR)

@codecov

codecov Bot commented Sep 14, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

sotashimozono and others added 2 commits September 14, 2026 14:07
…that checked nothing

CITATIONS. Both were copied from the issue and neither survives the source.
`C(r) ∼ r^{-2x_m}` is Eq. (A.6), the critical-point scaling law stated generally,
which §A.3 carries to an infinite-randomness point rather than states. The typical
form is Eq. (6.26), §6.3.3, derived for the random singlet phase where ψ = 1/2,
not §A.3 at all. Also checked, and it holds: x_m = (3-√5)/4 follows twice over
from that source, from β = (3-√5)/2 with ν = 2, and from the golden mean through
φ = (d - x_m)/ψ.

THE ROUTE. `derive` fires the first step whose inputs are complete, and registration
order is file order. `CFTEntanglementSlope` was already declared first, so appending
its domain-safe sibling after it meant a caller holding both slopes got the
out-of-domain answer: 0.19992 where the chord route gives 0.51978 and the truth is
0.5. The existing PBC/Infinite pair does not have this problem only because the
general form happens to be written first there. Declaring the chord form first does
the same here, and `derive` now returns 0.51978.

Not grouping the two under one `law_family` is correct and was verified by
simulating the alternative: grouped, a 60% wrong `c` is excused, because one member
agreeing satisfies the family. Now pinned, since nothing stopped a future reader
from grouping them by analogy with the six pairs that should be.

THE VACUOUS CHECK. `ncuts = 0` leaves the residual independent of `c`, so both
slope relations passed for any central charge, including 999999. Refused now, in
both. A region with no cuts has no slope to read.

THE MISSING LINK. Neither new scaling relation had an `also_constrains`, so
`relations_constraining` could not find them, and the average/typical split that is
the entire reason both exist was enforced nowhere. They carry
`DisorderAveraged{ConnectedSpinCorrelation}` and `Typical{ConnectedSpinCorrelation}`
now, which is the spatial correlator they are about and the reduction split the
autocorrelations beside them already use.

PROSE. "Halves each time L doubles" is 0.54 then 0.51, so it says that. "Consistent
at every L" was not: one of the nine entries is 1.57 of its own error out, past the
bar this PR's own test uses. Two claims with nothing behind them are gone, the
correction coefficient's size and sign, and a trend in L for the typical probe that
one data point cannot show. The QAtlas example passed a type where its `fetch`
dispatches on an instance, and called the result the effective central charge while
fetching `CentralCharge`, which is true of QAtlas and worth saying rather than
smoothing over, since this package keeps those apart.

TESTS. The convergence claim ran on one ratio; the third size was already measured
and sitting in the docstring, so it is asserted now and the ratio is checked twice.
The limit claim was pinned by an equality true for any `c` from the two relations
sharing a shape; it now takes both slopes from the same ED data in the ℓ ≪ L window
and requires the two relations to return the same charge. The duplicated ED fixture
is one copy at file scope.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The three docstrings ran 91 lines for three one-line relations. The measured tables
were evidence for the change, not for someone calling it: the numbers live in the
commit that added them and in the tests that assert their behaviour. What is left
is the formula, the equation it comes from, and the one thing a reader would
otherwise get wrong, which is the domain limit for the chord slope and the
average-versus-typical split for the correlation pair. 42 lines.

Also: version back to 0.7.13. The gate wants a single step from the base, and main
is 0.7.12; I had given the review-response commit a bump of its own, but the bump
is per pull request, not per commit.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@sotashimozono
sotashimozono merged commit e50d946 into main Sep 14, 2026
26 checks passed
@sotashimozono
sotashimozono deleted the feat/issues-156-157-158 branch September 14, 2026 15:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

No relation reads x_m or ψ off a critical correlation function CFTEntanglementSlope carries no ℓ-range, and ncuts cannot supply one

1 participant