Library zoo.program_logic.wp_adequacy

Require Import zoo.prelude.
Require Import zoo.iris.diaframe.
Require Export zoo.program_logic.bwp_adequacy.
Require Export zoo.program_logic.wp.
Require Import zoo.options.

Implicit Type e : expr.
Implicit Type v : val.
Implicit Type σ : state.

Lemma wpadequacy' `{inv_Gpre : !invGpreS Σ} e σ :
  ( `{inv۰G : !invGS Σ} κs,
     |={}=>
       (zoo۰G : ZooG Σ) Φ,
      zoo۰G.(zoo۰G۰inv۰G) = inv۰G
      state_interp 0 1 σ κs
      WP e 0 {{ Φ }}
  )
  safe ([e], σ).
Lemma wpadequacy `{zoo۰Gpre : !ZooGpre Σ} {e σ} v :
  state۰wf σ v
  ( `{zoo۰G : !ZooG Σ},
     Φ,
      ([∗ map] l v state۰heap۰initial σ, l v) -∗
      0 ↦ₗ v -∗
      WP e 0 {{ Φ }}
  )
  safe ([e], σ).