Skip to content
Snippets Groups Projects
Commit 2b5b5c74 authored by Robbert Krebbers's avatar Robbert Krebbers
Browse files

Wrapping set_solver into abstract may drastically improve performance.

parent 37675f7b
No related branches found
No related tags found
No related merge requests found
...@@ -88,8 +88,8 @@ Proof. ...@@ -88,8 +88,8 @@ Proof.
iNext. iRewrite "Heq" in "HQR". iIntros "HP". iSpecialize ("HPΨ" with "HP"). iNext. iRewrite "Heq" in "HQR". iIntros "HP". iSpecialize ("HPΨ" with "HP").
iDestruct (big_sepS_delete _ _ i with "HPΨ") as "[HΨ HPΨ]"; first done. iDestruct (big_sepS_delete _ _ i with "HPΨ") as "[HΨ HPΨ]"; first done.
iDestruct ("HQR" with "HΨ") as "[HR1 HR2]". iDestruct ("HQR" with "HΨ") as "[HR1 HR2]".
rewrite !big_sepS_insert''; [|set_solver ..]. by iFrame "HR1 HR2". rewrite !big_sepS_insert''; [|abstract set_solver ..]. by iFrame "HR1 HR2".
- rewrite !big_sepS_insert'; [|set_solver ..]. by repeat iSplit. - rewrite !big_sepS_insert'; [|abstract set_solver ..]. by repeat iSplit.
Qed. Qed.
(** Actual proofs *) (** Actual proofs *)
...@@ -115,7 +115,7 @@ Proof. ...@@ -115,7 +115,7 @@ Proof.
+ set_solver. + set_solver.
+ iApply (sts_own_weaken with "Hγ'"); + iApply (sts_own_weaken with "Hγ'");
auto using sts.closed_op, i_states_closed, low_states_closed; auto using sts.closed_op, i_states_closed, low_states_closed;
set_solver. } abstract set_solver. }
iPvsIntro. rewrite /recv /send. iSplitL "Hr". iPvsIntro. rewrite /recv /send. iSplitL "Hr".
- iExists γ', P, P, γ. iFrame "Hr". repeat iSplit; auto. by iIntros "> ?". - iExists γ', P, P, γ. iFrame "Hr". repeat iSplit; auto. by iIntros "> ?".
- iExists γ'. by iSplit. - iExists γ'. by iSplit.
...@@ -190,7 +190,7 @@ Proof. ...@@ -190,7 +190,7 @@ Proof.
+ set_solver. + set_solver.
+ iApply (sts_own_weaken with "Hγ"); + iApply (sts_own_weaken with "Hγ");
eauto using sts.closed_op, i_states_closed. eauto using sts.closed_op, i_states_closed.
set_solver. } abstract set_solver. }
iPvsIntro; iSplitL "Hγ1"; rewrite /recv /barrier_ctx. iPvsIntro; iSplitL "Hγ1"; rewrite /recv /barrier_ctx.
+ iExists γ, P, R1, i1. iFrame "Hγ1 Hi1". repeat iSplit; auto. + iExists γ, P, R1, i1. iFrame "Hγ1 Hi1". repeat iSplit; auto.
by iIntros "> ?". by iIntros "> ?".
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment