You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Formalize the previously-informal "priority-ordered first match" policy
arbitration (lib/phronesis/state.ex policies_by_priority + the first-match
evaluation in spec/SPEC.core.scm) as the ethics-specific soundness of the
decision procedure, over the real PhrPolicy record.
Model: bestMatch = the highest-priority MATCHING policy, ties broken in
favour of the earlier policy (a fold equivalent to sort-by-priority then
find-first). `matches` abstracts condition evaluation, decoupling
arbitration soundness from the Eval expression semantics.
Theorems (all sorry-free; #print axioms reports only Lean's standard
propext / Quot.sound):
* bestMatch_sound -- a verdict is produced only by a policy that really
matches the situation and is in the policy set
(no spurious verdicts);
* bestMatch_none -- no verdict ⇒ no policy matched; hence
* bestMatch_decisive -- a verdict is produced whenever some policy applies
(the procedure never silently abstains on a live case);
* bestMatch_maximal -- the deciding policy has MAXIMAL priority among all
matching policies, so a higher-priority verdict is
never overridden by a lower-priority one -- e.g. a
high-priority REJECT cannot be undercut by a
lower-priority ACCEPT (the core ethical override).
Builds clean on Lean 4.12.0 core, no Mathlib, no warnings.
Docs: safety_proofs.md gains §2.6 "Ethical Verdict Consistency" with the
mechanization note, and the §5 status table adds the row
"Ethical Verdict Consistency | Mechanized (Lean 4)".
https://claude.ai/code/session_01DQACj3RFmAPZaBPgR9SAaS
0 commit comments