Skip to content

JPYC.setPermitNonce_authorizationStates

名称・種別

  • 名称: JPYC.setPermitNonce_authorizationStates
  • 種別: theorem
  • モジュール: JpycFormalVerification.SignaturesTheorems
  • ソース: JpycFormalVerification/SignaturesTheorems.lean:59-60
  • 概要: setPermitNonce は authorizationStates を変えない、という frame 補題。
  • 仕様: 対象外

型シグネチャ

lean
∀ (s : JPYC.State) (o : JPYC.Address) (v : JPYC.U256), Eq (s.setPermitNonce o v).authorizationStates s.authorizationStates

(s.setPermitNonce …).authorizationStates は元の s.authorizationStates に等しい、という @[simp] 等式です。

解説

何を述べているか。 permit nonce の更新を施しても、authorization 台帳(authorizationStates)は 変わらない ことを示します。定義から rfl で従います。

直感。 State.setPermitNonce は対象のマッピングだけを書き換える操作なので、それ以外のフィールドには一切触れません。

なぜ安全性に効くか。 @[simp] 補題として、permit / EIP-3009 各操作の証明で「この更新はauthorization 台帳を保つ」を自動適用します。供給保存(総供給・残高総和)や WF 保存の論証は、こうした 1 行補題の積み重ねで機械化されています。

図解

Lean ソースコード

lean
@[simp] theorem setPermitNonce_authorizationStates (s : State) (o : Address) (v : U256) :
    (s.setPermitNonce o v).authorizationStates = s.authorizationStates := rfl

依存