Three relations the issues asked for, and the collision one of them names - #159
Merged
Merged
Conversation
…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>
Contributor
|
📚 Docs preview: https://qatlashub.github.io/AbstractQAtlas.jl/previews/PR159/ (updates on each push to this PR) |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
CFTEntanglementSlopeisdS/d(ln ℓ) = ncuts · c/6and carries noL, sonothing tells a caller how large
ℓmay be. Out of range it does not refuse, itreturns a number: at
ℓ → Lthe block's complement is a few sites, purity alonecaps
S, and no value ofncutsdescribes that.ncutsis a property of theregion's boundary and cannot encode whether
ℓis still in the scale-invariantregime.
CFTEntanglementChordSlopestates the same law against the chord,dS/d(ln[(L/π) sin(πℓ/L)]) = ncuts · c/6. The caller suppliesL, which is themissing 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, soc/6 = 0.08333:ln ℓ, whole chainln[chord], whole chainThe chord column halves its error each time
Ldoubles; 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/4both agree, which is the regime theexisting 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_mandψ, through the correlation function at criticalityagainst DISTANCE. Neither had a relation.
Distance is a third scale, by exactly the argument that already separates
Lfromξin the neighbouring relations:ξdiverges at criticality and constrainsnothing there,
Lis the only scale left, andrinside a large system isneither.
Anchored on the golden-mean value
-2x_m = -(3-√5)/2 = -0.38197, which therelation 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 toone number is made on the numbers.
#157, the half that is ours
InfiniteRandomness's warning aboutdalready described the hazard; it nownames the sibling lookup that requires the value it warns against
(
fetch(Universality{:IsingSDRG}, CentralCharge(); d = 2)), so the hazard isgreppable 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