Skip to content
Snippets Groups Projects
Commit 4b322da9 authored by Ralf Jung's avatar Ralf Jung
Browse files

use solve_ndisj more

parent 627054a3
No related branches found
No related tags found
No related merge requests found
Pipeline #51332 failed
...@@ -180,10 +180,7 @@ Proof. ...@@ -180,10 +180,7 @@ Proof.
iDestruct (monPred_in_intro True%I with "[//]") as (V) "[H _]". iDestruct (monPred_in_intro True%I with "[//]") as (V) "[H _]".
by rewrite -(lat_bottom_sqsubseteq V). } by rewrite -(lat_bottom_sqsubseteq V). }
clear I A . iIntros "!> HΛ". clear I A . iIntros "!> HΛ".
iApply (step_fupd_mask_mono (lftN userE) _ ((lftN userE)∖↑mgmtN)). iApply (step_fupd_mask_mono (lftN userE) _ ((lftN userE)∖↑mgmtN)); [solve_ndisj..|].
{ (* FIXME solve_ndisj should really handle this... *)
assert (mgmtN ## userE) by solve_ndisj. set_solver. }
{ done. }
iInv mgmtN as (A I) "(>HA & >HI & Hinv)" "Hclose". iInv mgmtN as (A I) "(>HA & >HI & Hinv)" "Hclose".
iMod (ilft_create _ _ {[+ Λ +]} with "HA HI Hinv") as "H". clear A I. iMod (ilft_create _ _ {[+ Λ +]} with "HA HI Hinv") as "H". clear A I.
iDestruct "H" as (A I) "(% & HA & HI & Hinv)". iDestruct "H" as (A I) "(% & HA & HI & Hinv)".
...@@ -222,15 +219,7 @@ Proof. ...@@ -222,15 +219,7 @@ Proof.
+ edestruct HK=>//. set_solver + Hal HΛκ HκK HI. + edestruct HK=>//. set_solver + Hal HΛκ HκK HI.
- move=>-[[[[??]?]|?][?|?]]//. by destruct (lft_alive_and_dead_in A κ). } - move=>-[[[[??]?]|?][?|?]]//. by destruct (lft_alive_and_dead_in A κ). }
rewrite HI !big_sepS_union //. iDestruct "Hinv" as "[HinvD HinvK]". rewrite HI !big_sepS_union //. iDestruct "Hinv" as "[HinvD HinvK]".
iApply fupd_trans. iApply (fupd_mask_mono (userE borN inhN)). iApply fupd_trans. iApply (fupd_mask_mono (userE borN inhN)); first solve_ndisj.
{ (* FIXME can we make solve_ndisj handle this? *)
clear -userE_lftN_disj. rewrite -assoc. apply union_least.
- assert (userE ##@{coPset} mgmtN) by solve_ndisj. set_solver.
- assert (inhN ##@{coPset} mgmtN) by solve_ndisj.
assert (inhN ⊆@{coPset} lftN) by solve_ndisj.
assert (borN ##@{coPset} mgmtN) by solve_ndisj.
assert (borN ⊆@{coPset} lftN) by solve_ndisj.
set_solver. }
iMod (lfts_kill A I K K' Vs with "[$HI HinvD] [HinvK]") as "[[HI HinvD] HinvK]"=>//. iMod (lfts_kill A I K K' Vs with "[$HI HinvD] [HinvK]") as "[[HI HinvD] HinvK]"=>//.
{ intros κ κ' Hκ' Hκκ'. assert (κ dom (gset _) I) by set_solver +HI . auto. } { intros κ κ' Hκ' Hκκ'. assert (κ dom (gset _) I) by set_solver +HI . auto. }
{ move=> κ κ'. rewrite !elem_of_K=>-[?[Hd|?]] ??; split=>//. { move=> κ κ'. rewrite !elem_of_K=>-[?[Hd|?]] ??; split=>//.
......
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