Repository navigation
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AvtZGymCbY9swLnR8JwHng
…used at load `edge=0` puts a 0 where a shift vacates, whatever the data holds, so `p / shift(c, along=t, offset=1, edge=0)` divided by 0 at the edge and loaded. The refusal walks the whole divisor: a factor, a numerator, a base, the operand of a sum, a window, a shift or a lookup, a named expression or a region of a case, and a sum only where every term can be 0. The message names the rewrite: `edge='wrap'`, or another edge value. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AvtZGymCbY9swLnR8JwHng
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AvtZGymCbY9swLnR8JwHng
FBumann
pushed a commit
that referenced
this pull request
Oct 23, 2026
…used at load The check that refuses a divisor a missing row of a missing: 0 parameter makes 0 now also names an edge=0 shift as a cause, through the same walk. The tests and the rule in expressions.md come from #889. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W7L7U7Av5v8wnKV6eDpXfi
FBumann
marked this pull request as draft
October 23, 2026 13:26
Contributor
Author
Note The following content was generated by AI. Superseded by #894 ( Generated by Claude Code |
This branch has not been deployed
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.
Note
The following content was generated by AI.
p / shift(c, along=t, offset=1, edge=0)loaded and divided by 0 at the edge, whatever the data held. A divisor thatedge=0can make 0 is now refused at load, with the rewrite named.What changes, how it was checked, what was not done
The rule.
edge=0puts a 0 where a shift vacates, so the file itself makes the divisor 0 there._zero_inin_expression_resolver.pywalks the whole divisor. The shift makes the divisor 0 where it is a factor, a numerator, a base, or the operand of a negation, a sum, a window, another shift, a lookup or a named expression; where any region of a case holds it; and in a sum only where every term can be 0, soshift(c, …, edge=0) + 1loads. The message:It is refused in every position, a reported expression included. There a zero divisor makes the quotient absent, but
edge=0in a divisor is never the way to ask for that: a shift with noedge=vacates to absence already. expressions.md states the rule beside the other rules for/.Reproduced first. On
origin/main(7cc9515),x / shift(p, along=t, offset=1, edge=0)andx / (2 * shift(…, edge=0))both loaded. The first test commit's five refusal cases failed there; the three loading cases passed.Mutation table. Each branch of
_zero_inwas deleted by hand.tests/test_validation.py -k shift_fillswas run, the file was restored throughgit checkout --with__pycache__dropped on both sides, and the tree came back clean each time.edge=0is the zeroGates.
pixi run lintandpixi run testpass (2931 passed, 1 skipped).docs-buildandcompile-texwere not run.Relation to #880. #880 adds the same walk for a
missing: 0parameter. This PR's_zero_inreturns the reason and the rewrite, so #880 can add its case to this one helper when it is merged, rather than keep a second walk.Not done.
sum_backstops short at the edge and sums fewer terms; that is not a 0 the file puts in, so it is not refused.🤖 Generated with Claude Code
https://claude.ai/code/session_01AvtZGymCbY9swLnR8JwHng
Generated by Claude Code