Skip to content

Remember a decline a sum over roots would answer as one, so a later question still gets the second pass - #2036

Merged
Rafael-SOWNet merged 1 commit into
masterfrom
remember-a-decline-a-sum-over-roots-would-answer
Oct 21, 2026
Merged

Rafael-SOWNet merged 1 commit into
masterfrom
remember-a-decline-a-sum-over-roots-would-answer

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

Part of #233.

The defect. On one thread, integrating (1 + x^4)/(1 - x^4 + x^8) and then (1 + (1 + sqrt(3)) x^4)/(1 - x^4 + x^8) declined the second, in 63 ms. The second is answered when asked alone.

Why. The integrator keeps the answers it found per thread, across top-level questions, while the settings hold. A rational function whose residues want a sum over roots is declined in the first pass, which sets ASumOverRootsWouldAnswer, and the second pass answers it. Afterwards only the top-level question's entry was replaced with that answer. The first pass's declines of its sub-questions stayed in the memo as plain declines. A later question that asks one of them gets it from the memo, so the rule never runs to set the flag, no second pass runs, and the question is declined.

How it showed. Rubi's 1.2.3.3:53 was counted unsolved in the harness's family-1 sample. The harness worker integrates a file's rows in order on one thread, and row 33 comes first. The ip* probe could not see it, because it uses a fresh thread for each row. I found row 33 by bisecting over the 1,202 rows before row 53 on one thread.

The fix. The memo now records, with a decline, whether a sum over roots was wanted in computing it, and a hit on such a decline raises the flag again. Whether one was wanted is read from a count of the flag's raises around the computation. The flag itself stays one per top-level question, because the rules that read it mid-computation rely on that.

ADeclineASumOverRootsWouldAnswerIsRememberedAsOneTest runs the two integrals in order on a thread of its own. It fails on master and passes here. v2.5.0 declines both integrals in either order, having no sums over roots, so no released answer changes and there is no BREAKING-CHANGES entry.

Chain against master 6e16aae, with a pocket of 289 rows from the rational families:

  • The pocket is unchanged at 287 of 289 solved.
  • Family 1's sample went from 1,375 to 1,376, which is row 53 recovered.
  • The other samples are unchanged.
  • 5,818 rows were compared for allocation, and none grew.

The full suite passes locally: 16344 passed, 0 failed.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

…uestion still gets the second pass

The integrator keeps the answers it found per thread, across top-level
questions, for as long as the settings hold. A rational function whose
residues want a sum over roots is declined in the first pass, which sets
ASumOverRootsWouldAnswer, and the second pass answers it; afterwards only the
top-level question's entry was replaced with that answer. The first pass's
declines of its sub-questions stayed in the memo as plain declines, and a
later question that asked one of them got it from the memo, so the rule never
ran to set the flag and no second pass ran: the question was declined.

Integrating (1 + x^4)/(1 - x^4 + x^8) and then
(1 + (1 + sqrt(3)) x^4)/(1 - x^4 + x^8) on one thread declined the second in
63 ms, which answers alone. Rubi's 1.2.3.3:53 was counted unsolved in the
harness's family-1 sample for exactly this reason: the worker integrates the
file's rows in order, and row 33 comes first. Bisected over the 1,202 rows
before it to that one.

The memo now records, with a decline, whether a sum over roots was wanted in
computing it, and a hit on such a decline sets the flag again. Whether one was
wanted is read from a count of the flag's raises around the computation; the
flag itself is still one per top-level question, which the rules that read it
mid-computation rely on. 2.5.0 declines both integrals in either order, having
no sums over roots, so no released answer changes.

Part of #233.

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 21, 2026
@Rafael-SOWNet
Rafael-SOWNet merged commit 64f144b into master Oct 21, 2026
34 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in AngouriMath Oct 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant