Skip to content

feat: EffectProfile::meet() — the greatest-lower-bound, mirror of join() - #33

Merged
rodrigoteamx merged 1 commit into
mainfrom
feat/effect-profile-meet
Aug 20, 2026
Merged

feat: EffectProfile::meet() — the greatest-lower-bound, mirror of join()#33
rodrigoteamx merged 1 commit into
mainfrom
feat/effect-profile-meet

Conversation

@rodrigoteamx

Copy link
Copy Markdown
Contributor

Where join() composes upward (the more dangerous of each axis, so a ceiling covers both), meet() composes downward (the safer), so the result can only lower and never raises any axis.

It is the primitive a structural counter rests on: a human tightening a gated call's envelope ("only if reversible / only Read") yields the tightened ceiling meet(ceiling, P_human), safe precisely because a meet is <= both operands on every axis. That "never raises" is the whole safety claim, so it's tested as an invariant across every profile pair, not an example.

Preserves the two profile invariants: a no-mutation meet clamps subject to None (None <= every subject, still a GLB); a meet reaching Guaranteed carries the rollback contract from whichever side declared it.

Frame: greenhouse decisions/0066 (the first piece of the structural-counter tier; the gate adjudication that consumes it is a separate slice). Ships as a command minor.

Where join() composes upward (the more dangerous of each axis, so a ceiling
covers both), meet() composes downward (the safer), so the result can only lower
and never raises any axis. It is the primitive a structural counter rests on: a
human tightening a gated call's envelope ("only if reversible / only Read")
yields the tightened ceiling meet(ceiling, P_human), safe because a meet is <=
both operands on every axis.

Preserves the profile invariants: a no-mutation meet clamps subject to None
(None <= every subject, still a GLB); a meet that reaches Guaranteed carries the
rollback contract from whichever side declared it. The "never raises any axis"
property is tested as an invariant across every profile pair (greenhouse
decisions/0066).
@rodrigoteamx
rodrigoteamx merged commit 230ce41 into main Aug 20, 2026
2 checks passed
@rodrigoteamx
rodrigoteamx deleted the feat/effect-profile-meet branch August 20, 2026 23:14
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