Skip to content

[pull] main from B-Lang-org:main#174

Merged
pull[bot] merged 1 commit into
chenm001:mainfrom
B-Lang-org:main
Jun 26, 2026
Merged

[pull] main from B-Lang-org:main#174
pull[bot] merged 1 commit into
chenm001:mainfrom
B-Lang-org:main

Conversation

@pull

@pull pull Bot commented Jun 26, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

…ch (PR 980)

When satMany' only partially reduces a predicate (the "still-needed" /
Right branch), it commits the learned substitution s' to the accumulator
(s' @@ s) but did not apply it to the not-yet-processed sibling
predicates ps. The fully-solved (Left) branch already does this
(apSub s' ps). Because of the asymmetry, a sibling predicate that is
determined (via a functional dependency) by a variable that s' had just
grounded was matched against an unbound variable and left unreduced, so
its own fundep never fired.

This surfaced as a spurious T0029 ("Signature mismatch (given too
general)"): a partially-solved proviso grounds the input of a sibling
fundep'd proviso, but because the grounding was not propagated the
sibling stayed unreduced and the instance's determined parameter was
left general in the declared head -- while the method body grounded it.

Fix: apply s' to ps in the Right branch too, matching the Left branch.
This only propagates an already-committed substitution, so it adds no
new reduction rounds and cannot affect termination.
@pull pull Bot locked and limited conversation to collaborators Jun 26, 2026
@pull pull Bot added the ⤵️ pull label Jun 26, 2026
@pull pull Bot merged commit 429e85a into chenm001:main Jun 26, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant