Skip to content

Define decision monoids - #11

Merged
nilp0inter merged 2 commits into
mainfrom
define-decision-monoids
Jul 8, 2026
Merged

Define decision monoids#11
nilp0inter merged 2 commits into
mainfrom
define-decision-monoids

Conversation

@nilp0inter

@nilp0inter nilp0inter commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add explicit public decision monoids for composite terminal resolution.
  • Keep AnyOf as disjunction: ACCEPT_H0 < INCONCLUSIVE < ACCEPT_H1.
  • Correct AllOf default resolution to conjunction: ACCEPT_H1 < INCONCLUSIVE < ACCEPT_H0.
  • Preserve composite child evidence with terminal_results on CompositeResult.
  • Make n_decided count actual terminal direct children, including AnyOf early-stop cases where n_decided may be less than n_total.
  • Add Hypothesis monoid-law tests and update composite property-test oracles.
  • Add direct evidence-preservation tests for AllOf, AnyOf, and nested composites.
  • Document monoid semantics and CompositeResult evidence semantics in Sphinx docs/API reference.

Verification

  • nix develop --command task lint
  • nix develop --command task typecheck
  • nix develop --command task docs
  • nix develop --command task test

Notes

  • Custom resolve= behavior is unchanged.
  • This fixes the previous AllOf default resolver bug where AllOf used the AnyOf-like resolver.
  • The scalar composite decision is still a policy-level projection; child-level terminal evidence is now preserved in CompositeResult.terminal_results.

@nilp0inter
nilp0inter merged commit 1f014a7 into main Jul 8, 2026
5 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