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
Make the informal "by inspection of execution paths" argument for
Theorem 2 machine-checked, reusing the real PhrAction AST.
* Model: Resource / Operation / Capability / Context (capability list);
requiredCap? maps the four leaf actions to their capability per §2.3
(ACCEPT/REJECT -> route_decision:write, REPORT -> consensus_log:append,
EXECUTE f -> module f:exec).
* The Executes relation is capability-gated BY CONSTRUCTION: every leaf
rule carries the required-capability membership as a hypothesis, and
there is deliberately no constructor that executes without an
enforcement point. capability_soundness then follows by inversion --
this is exactly "all paths have enforcement points" made formal.
* capability_soundness_ite extends enforcement through conditional
actions (an executed iteAction reduces to a gated branch).
* The two §2.5 side-properties are mechanized too: least_privilege (a
fresh context holds only granted capabilities) and no_escalation
(a step never enlarges the capability set, S -> S' => S'.caps subset
of S.caps).
All four are sorry-free; #print axioms reports only Lean's standard
propext (capability_soundness_ite is axiom-free). Builds clean on Lean
4.12.0 core, no Mathlib.
Docs: safety_proofs.md §2.4 gains a "Mechanized (Lean 4)" note and §5
status table now reads Sandbox Isolation + Capability Soundness =
Mechanized (Lean 4), BFT Safety = Model-checked (TLA+/TLC).
https://claude.ai/code/session_01DQACj3RFmAPZaBPgR9SAaS
0 commit comments