JPYC.setBlocklisted_self
名称・種別
- 名称:
JPYC.setBlocklisted_self - 種別: theorem
- モジュール:
JpycFormalVerification.AccessControlTheorems - ソース:
JpycFormalVerification/AccessControlTheorems.lean:58-60 - 概要: setBlocklisted 後、当該アドレスの blocklisted フラグが設定値になる、という補題。
- 仕様: 対象外
型シグネチャ
lean
∀ (s : JPYC.State) (a : JPYC.Address) (v : JPYC.U256), Eq ((s.setBlocklisted a v).blocklisted a) vブロックリスト・フラグを設定した直後に同じ鍵で読み出すと、設定した値 v がそのまま返る、という @[simp] 等式です。
解説
何を述べているか。 (s.setBlocklisted a v).blocklisted a = v を示します。ブロックリスト・フラグを設定で書いた値が、同じ鍵での読み出しでそのまま得られます(Function.update_self)。
直感。 「書いた値はそのまま読める」という当たり前を、機械が自動で使える形(@[simp])で確認しています。
なぜ安全性に効くか。 効果系の定理(blocklist_sets など)が「設定した値が実際に反映される」と結論づけるための核心の補題です。
図解
Lean ソースコード
lean
@[simp] theorem setBlocklisted_self (s : State) (a : Address) (v : U256) :
(s.setBlocklisted a v).blocklisted a = v := by
simp [State.setBlocklisted, Function.update_self]