Commit bc843b94 authored by Jacques-Henri Jourdan's avatar Jacques-Henri Jourdan

Viewshifts that take a step.

parent 09ad47b4
Pipeline #2666 passed with stage
in 8 minutes and 59 seconds
......@@ -31,6 +31,10 @@ Notation "P ={ E }=★ Q" := (P -★ |={E}=> Q)%I
Notation "P ={ E }=> Q" := (P |={E}=> Q)
(at level 99, E at level 50, Q at level 200, only parsing) : C_scope.
Notation "|={ E1 , E2 }▷=> Q" := (|={E1%I,E2%I}=> |={E2,E1}=> Q)%I
(at level 99, E1, E2 at level 50, Q at level 200,
Please register or sign in to reply
format "|={ E1 , E2 }▷=> Q") : uPred_scope.
Section pvs.
Context `{irisG Λ Σ}.
Implicit Types P Q : iProp Σ.
......
......@@ -134,7 +134,7 @@ Qed.
Lemma wp_frame_step_l E1 E2 e Φ R :
to_val e = None E2 E1
(|={E1,E2}=> |={E2,E1}=> R) WP e @ E2 {{ Φ }} WP e @ E1 {{ v, R Φ v }}.
(|={E1,E2}=> R) WP e @ E2 {{ Φ }} WP e @ E1 {{ v, R Φ v }}.
Proof.
rewrite !wp_unfold /wp_pre. iIntros (??) "[HR [Hv|[_ H]]]".
{ iDestruct "Hv" as (v) "[% Hv]"; simplify_eq. }
......@@ -189,7 +189,7 @@ Proof. iIntros "[??]". iApply (wp_strong_mono E E _ Φ); try iFrame; eauto. Qed.
Lemma wp_frame_step_r E1 E2 e Φ R :
to_val e = None E2 E1
WP e @ E2 {{ Φ }} (|={E1,E2}=> |={E2,E1}=> R) WP e @ E1 {{ v, Φ v R }}.
WP e @ E2 {{ Φ }} (|={E1,E2}=> R) WP e @ E1 {{ v, Φ v R }}.
Proof.
rewrite [(WP _ @ _ {{ _ }} _)%I]comm; setoid_rewrite (comm _ _ R).
apply wp_frame_step_l.
......
  • I am not sure I like the notation because it does not reflect that it is also view shifting back.

    Edited by Robbert
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment