diff --git a/theories/program_logic/adequacy.v b/theories/program_logic/adequacy.v index 2c9ce1d1eb1a2817bd0181cb402b3d5cbef7cb27..6f442eb45a735bc1c30caadcca8b23c3e2fd7fe6 100644 --- a/theories/program_logic/adequacy.v +++ b/theories/program_logic/adequacy.v @@ -187,11 +187,11 @@ Proof. iFrame. by iApply big_sepL_nil. Qed. -Theorem wp_invariance Σ Λ `{invPreG Σ} e σ1 t2 σ2 φ Φ : +Theorem wp_invariance Σ Λ `{invPreG Σ} e σ1 t2 σ2 φ : (∀ `{Hinv : invG Σ}, True ={⊤}=∗ ∃ stateI : state Λ → iProp Σ, let _ : irisG Λ Σ := IrisG _ _ Hinv stateI in - stateI σ1 ∗ WP e {{ Φ }} ∗ (stateI σ2 ={⊤,∅}=∗ ⌜φâŒ)) → + stateI σ1 ∗ WP e {{ _, True }} ∗ (stateI σ2 ={⊤,∅}=∗ ⌜φâŒ)) → rtc step ([e], σ1) (t2, σ2) → φ. Proof. diff --git a/theories/program_logic/ownp.v b/theories/program_logic/ownp.v index 6d318ea72a2476bcea8a88cdfe74a01d090549d5..54fb033107216f992869841b53ada27d17758ca9 100644 --- a/theories/program_logic/ownp.v +++ b/theories/program_logic/ownp.v @@ -50,13 +50,13 @@ Proof. iApply (Hwp (OwnPG _ _ _ _ γσ)). by rewrite /ownP. Qed. -Theorem ownP_invariance Σ `{ownPPreG Λ Σ} e σ1 t2 σ2 φ Φ : +Theorem ownP_invariance Σ `{ownPPreG Λ Σ} e σ1 t2 σ2 φ : (∀ `{ownPG Λ Σ}, - ownP σ1 ={⊤}=∗ WP e {{ Φ }} ∗ |={⊤,∅}=> ∃ σ', ownP σ' ∧ ⌜φ σ'âŒ) → + ownP σ1 ={⊤}=∗ WP e {{ _, True }} ∗ |={⊤,∅}=> ∃ σ', ownP σ' ∧ ⌜φ σ'âŒ) → rtc step ([e], σ1) (t2, σ2) → φ σ2. Proof. - intros Hwp Hsteps. eapply (wp_invariance Σ Λ e σ1 t2 σ2 _ Φ)=> //. + intros Hwp Hsteps. eapply (wp_invariance Σ Λ e σ1 t2 σ2 _)=> //. iIntros (?) "". iMod (own_alloc (â— (Excl' (σ1 : leibnizC _)) â‹… â—¯ (Excl' σ1))) as (γσ) "[Hσ Hσf]"; first done. iExists (λ σ, own γσ (â— (Excl' (σ:leibnizC _)))). iFrame "Hσ".