Skip to content

The simplification sweep, the rule-set checker and the crash harness run in CI - #1652

Merged
Rafael-SOWNet merged 2 commits into
masterfrom
the-sweep-the-rules-and-the-crash-harness-run-in-ci
Oct 1, 2026
Merged

Rafael-SOWNet merged 2 commits into
masterfrom
the-sweep-the-rules-and-the-crash-harness-run-in-ci

Conversation

@Rafael-SOWNet

@Rafael-SOWNet Rafael-SOWNet commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

The third part of #1256: three more harnesses, each failing on a defect and on nothing else.

harness asks fails on
SimpSweep does a simplification keep the value of the expression it came from, at sampled real points any disagreement
RuleCheck does a rewrite rule set do what it declares: terminate, alone and composed with the normalisation, and keep the value where it claims Equivalence a set that does not settle; a Sound declaration a value falsifies
CrashCheck does anything take the process down: every case runs in a child process of its own, so a stack overflow is a result rather than the end of the run a crash; an exception that is not the library declining
  • What is not a failure. A value change under SoundUnderAssumptions stays information for RuleCheck, as it always was: the tier permits it where an assumption fails, and nothing there can tell an assumption from a defect. A case that did not finish is reported and does not fail, as in the other harnesses.
  • CrashCheck runs as its own job, because one child process per case takes about four minutes and would slow the others.

Measured on master 529403bb, all exiting 0:

  • SimpSweep: 10,463 of 10,463 agree, 9 s.
  • RuleCheck: 30 sets, 17,418 applications, 0 findings, 9 s.
  • CrashCheck: 2,212 cases, 0 crashed, 0 unexpected, 246 s.

When #1256 was filed these two took 72 s and 87 s; the library has got faster since. Each report names the commit it measured.

No negative control was run for these three. Their exit codes return the counts each report already printed, rather than new criteria like those #1650 and #1651 added, which had negative controls. The detection itself is unchanged; CrashCheck's is what once found a stack overflow in IntegrateByPartsPolynomial.

After this, canoncheck and confluence are left, and both report known findings by design. They need a recorded baseline before they can fail on a change.

Part of #1256.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

…run in CI

Three more harnesses move into Sources/Tests/Harnesses, each failing on a defect
and on nothing else:

- SimpSweep: a simplification that changes the value at a sampled real point.
- RuleCheck: a rule set that does not settle, alone or composed with the
  normalisation, and a Sound declaration a value falsifies. A value change under
  SoundUnderAssumptions stays information, as it was.
- CrashCheck: a crash or an exception that is not the library declining. A case
  that did not finish is reported and does not fail, as in the others.

CrashCheck runs one child process per case, about four minutes, so it is a job
of its own beside the others. On master 529403b: 10463/10463 agree; 30 sets,
17418 applications, 0 findings; 2212 cases, 0 crashed.

Part of #1256.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
@Rafael-SOWNet Rafael-SOWNet added this to the 2.6.0 milestone Oct 1, 2026
A case that did not finish no longer fails it, and the reason for a process per
case stands without the run that showed it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
@Rafael-SOWNet
Rafael-SOWNet merged commit cd3b27b into master Oct 1, 2026
29 checks passed
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