Skip to content

JPYC.setAllowlisted_self

名称・種別

  • 名称: JPYC.setAllowlisted_self
  • 種別: theorem
  • モジュール: JpycFormalVerification.AccessControlTheorems
  • ソース: JpycFormalVerification/AccessControlTheorems.lean:61-63
  • 概要: setAllowlisted 後、当該アドレスの allowlisted フラグが設定値になる、という補題。
  • 仕様: 対象外

型シグネチャ

lean
∀ (s : JPYC.State) (a : JPYC.Address) (v : JPYC.U256), Eq ((s.setAllowlisted a v).allowlisted a) v

許可リスト・フラグを設定した直後に同じ鍵で読み出すと、設定した値 v がそのまま返る、という @[simp] 等式です。

解説

何を述べているか。 (s.setAllowlisted a v).allowlisted a = v を示します。許可リスト・フラグを設定で書いた値が、同じ鍵での読み出しでそのまま得られます(Function.update_self)。

直感。 「書いた値はそのまま読める」という当たり前を、機械が自動で使える形(@[simp])で確認しています。

なぜ安全性に効くか。 効果系の定理(allowlist_sets など)が「設定した値が実際に反映される」と結論づけるための核心の補題です。

図解

Lean ソースコード

lean
@[simp] theorem setAllowlisted_self (s : State) (a : Address) (v : U256) :
    (s.setAllowlisted a v).allowlisted a = v := by
  simp [State.setAllowlisted, Function.update_self]

依存