Skip to content

either_build: absorb a term shared by both sides - #139

Merged
quaesitor-scientiam merged 1 commit into
masterfrom
either-build-absorb
Oct 27, 2026
Merged

quaesitor-scientiam merged 1 commit into
masterfrom
either-build-absorb

Conversation

@quaesitor-scientiam

Copy link
Copy Markdown
Owner

either_build left a redundant build condition in route labels. (p && q) || (!p && q) is q, but the label showed the unsimplified form, e.g. needs $if (p ? && q ? || !p ? && q ?) && !p ? where q ? && !p ? is meant.

absorbed_build drops the term the two sides differ by, when the other terms match on both sides. Opposite terms still make every build, as before.

Tests:

  • either_build pins the simplified forms and the unchanged non-matching ones. The new assertion failed before the change.
  • The route label in test_a_build_that_is_a_union_of_conjunctions now reads needs $if q ? && !p ?.
  • Full suite: 2 of 2 pass.

🧙 Built with WOZCODE

…p) is x`n

A call that holds in � && b or in � && !b holds in � whatever � is, so
the route label showed the redundant build condition, e.g.

    (p ? && q ? || !p ? && q ?) && !p ?

where the condition is simply q ? && !p ?. absorbed_build drops the
term the two sides differ by, when the other terms match on both sides;
opposite terms still make every build as before.

Tests: either_build pins the simplified forms and the unchanged
non-matching ones; the route label in test_a_build_that_is_a_union_of_conjunctions
is now
eeds $if q ? && !p ?. The either_build assertion failed on master
before the change.

Co-Authored-By: WOZCODE <contact@withwoz.com>
@quaesitor-scientiam
quaesitor-scientiam merged commit 0cb6182 into master Oct 27, 2026
14 checks passed
@quaesitor-scientiam
quaesitor-scientiam deleted the either-build-absorb branch October 27, 2026 02:30
@quaesitor-scientiam

Copy link
Copy Markdown
Owner Author

Correction for the squash commit 0cb6182 (PR #139), not applied to master

The commit on master keeps its damaged message. This note holds the intended text,
so anyone reading the log can find it. Words in [brackets] are my reconstruction
where the original text was lost; check them against PR #139's description before
relying on them.

Title (intended):

either_build: absorb a term shared by both sides, (x && p) || (x && !p) is x (#139)

Body (intended):

A call that holds in [x && p] or in [x && !p] holds in [x] whatever [p] is, so
the route label showed the redundant build condition, e.g.

    (p ? && q ? || !p ? && q ?) && !p ?

where the condition is simply q ? && !p ?. absorbed_build drops the
term the two sides differ by, when the other terms match on both sides;
opposite terms still make every build as before.

Tests: either_build pins the simplified forms and the unchanged
non-matching ones; the route label in test_a_build_that_is_a_union_of_conjunctions
is now `needs $if q ? && !p ?`. The either_build assertion failed on master
before the change.

Co-authored-by: Richard Wheeler <18647491+PythonWillRule@users.noreply.github.com>
Co-authored-by: WOZCODE <contact@withwoz.com>

Known damage on master (0cb6182): stray `n in the title; words lost in the body
where PowerShell expanded $ and backtick text; GitHub shows control characters
(^G) in the body; the route-label line lost its leading n and gained a line break.

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.

2 participants