Skip to content

Fix/post bareiss followup - #90

Open
hyperpolymath wants to merge 6 commits into
mainfrom
fix/post-bareiss-followup
Open

Fix/post bareiss followup#90
hyperpolymath wants to merge 6 commits into
mainfrom
fix/post-bareiss-followup

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Closes #

Type of change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • ✨ New feature (non-breaking change that adds functionality)
  • 💥 Breaking change (would change existing behaviour)
  • 🕳️ Soundness fix (fixes a checker/proof false-negative)
  • 📖 Documentation
  • 🧹 Refactor / tech debt (behaviour-preserving)
  • ⚡ Performance
  • 🔧 Build / CI / tooling

How has this been verified?

Checklist

  • My commits are signed (git commit -S).
  • I ran the project's own checks/tests locally and they pass.
  • New files carry the correct SPDX-License-Identifier (code/config MPL-2.0,
    prose CC-BY-SA-4.0); I did not relicense existing files.
  • Docs are updated, and no public claim now overstates what the code does.
  • I have not introduced a soundness hole (or I have flagged where I might have).

Notes for reviewers

hyperpolymath and others added 6 commits July 28, 2026 19:34
…s 12 → 128

main is currently RED: KnotTheory.jl#48 merged, so the conway
@test_broken now reports 'Unexpected Pass' — a hard error, and exactly
the forcing signal the marker existed to produce. This clears it.

- conway(figure_eight) restored to a hard @test. Upstream now
  normalises alexander to Delta(1) = +1 (the Conway normalisation)
  instead of 'leading coefficient positive', which was the wrong
  canonical choice on mixed-sign knots; the value is 1 - z^2 exactly.

- ALEXANDER/CONWAY_MAX_CROSSINGS 12 → 128. The bound of 12 was
  calibrated against the O(n!) cofactor determinant that #48 replaced
  with O(n^3) Bareiss elimination. Re-measured on (2,n)-torus closures
  (the worst case — no arc merging): n=40 → 0.07s, n=100 → 0.10s,
  n=140 → 0.61s, against 6h+ at n=16 before. 128 keeps the worst case
  sub-second while covering every realistic diagram. Jones (20) and
  HOMFLY (15) are unchanged — those are genuinely exponential.

- The guard testset is reworked: with the three bounds now an order of
  magnitude apart, one diagram can no longer exercise them all. It
  tests a 16-crossing diagram (only HOMFLY defers; alexander, conway
  and jones must all be real) AND a 130-crossing diagram (all four
  defer). The second case asserts crossings > ALEXANDER_MAX_CROSSINGS
  explicitly, so raising the bound without raising the fixture fails
  loudly rather than going quiet.

Validated locally against KnotTheory main (a2f2938): the full axioms
suite passes with ZERO broken markers — a first for this suite.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The 11/200 count did not move when KnotTheory#48 merged, falsifying the
assumption that the alexander/conway sign convention caused it. Split by
Delta(1) over the same 200-trial corpus:

    links (Delta(1)=0):  11 mismatch, 87 agree
    knots (Delta(1)=±1):  0 mismatch, 102 agree

Knots are now fully crossing-order invariant; the residual is entirely a
multi-component-link defect. Upstream conway_polynomial reconstructs from
an assumed symmetry about exponent 0 that no link satisfies (even span
gives a half-integer centre), so it returns genuinely different
polynomials for the same link — 1 + z^2 vs 1 — rather than a different
unit. Filed as KnotTheory.jl#51 with the worked examples.

Comment updated to cite that evidence instead of the old vague wording.
The marker stays until #51 lands.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e instantiate

#83 changed server/Project.toml [sources] from ../../../<name>.jl to
../../<name>.jl but left this workflow symlinking two levels above the
workspace. Every run since has died in 'Instantiate server project' with

    expected package KnotTheory [215268c9] to exist at path
    /home/runner/work/quandledb/KnotTheory.jl

i.e. main has been red for this as well as the conway marker — the path
error hits first, so the axioms suite never even ran.

Symlink now targets $GITHUB_WORKSPACE/../, matching [sources]. Adds a
check that reads server/Project.toml and asserts every [sources] path
resolves to a real directory BEFORE instantiate, so the next drift names
its own cause instead of surfacing as a registry-shaped error.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
KnotTheory.jl#52 landed the link canonicalisation, so the BR-5
crossing-order marker reports 'Unexpected Pass' — a hard error, and the
signal the marker existed to produce. Restored to a plain @test.

Measured against KnotTheory main after #52: 0 mismatches over 200
trials, links and knots alike (was 11/200, every one a multi-component
link). Validated at CI's 50 trials: all four BR-5 testsets pass with no
Broken column.

quandledb now carries NO @test_broken markers. Every marker this
campaign added was retired by the upstream fix it was tracking.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Both were swept into the previous commit by accident. They document the
KRL-side EXPLAIN surface, which lands in #86 — leaving them here would
put documentation of a feature on main ahead of the feature itself.
Restored to main's version; they are committed properly on #86.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.

1 participant