Skip to content
Snippets Groups Projects
Commit 25c44d0c authored by Jacques-Henri Jourdan's avatar Jacques-Henri Jourdan
Browse files

Simplifications

parent 7745dcad
No related branches found
No related tags found
No related merge requests found
...@@ -107,7 +107,8 @@ Section props. ...@@ -107,7 +107,8 @@ Section props.
iAssert ( q, [κ]{q})%I as "Htok". admit. iAssert ( q, [κ]{q})%I as "Htok". admit.
iDestruct "Htok" as (q) "Htok". iDestruct "Htok" as (q) "Htok".
iVs (ty.(ty_share) _ lrustN with "Hown Htok") as "[Hown _]". iVs (ty.(ty_share) _ lrustN with "Hown Htok") as "[Hown _]".
admit. set_solver. iVsIntro. iExists _. iSplit. done. done. apply disjoint_union_l; solve_ndisj. set_solver. iVsIntro.
iExists _. iSplit. done. done.
Admitted. Admitted.
Lemma perm_split_own_prod tyl (q : Qp) (ql : list Qp) v : Lemma perm_split_own_prod tyl (q : Qp) (ql : list Qp) v :
...@@ -144,7 +145,7 @@ Section props. ...@@ -144,7 +145,7 @@ Section props.
pose (q' := mk_Qp _ Hq'). pose (q' := mk_Qp _ Hq').
assert (q = q0 + q')%Qp as -> by rewrite Qp_eq -Hq //. clear Hq. assert (q = q0 + q')%Qp as -> by rewrite Qp_eq -Hq //. clear Hq.
injection Hlen. clear Hlen. intro Hlen. injection Hlen. clear Hlen. intro Hlen.
simpl in IH|-*. rewrite -(IH q') //. split; iIntros (tid) "H". simpl in IH|-*. rewrite -(IH q') //. clear IH. split; iIntros (tid) "H".
+ iDestruct "H" as (l') "(Hl'&Hf&H)". iDestruct "Hl'" as %[= Hl']. subst. + iDestruct "H" as (l') "(Hl'&Hf&H)". iDestruct "Hl'" as %[= Hl']. subst.
iDestruct "H" as (vl) "[Hvl H]". iDestruct "H" as (vl) "[Hvl H]".
iDestruct "H" as ([|vl0[|vl1 vll]]) "(>%&>%&Hown)"; try done. subst. iDestruct "H" as ([|vl0[|vl1 vll]]) "(>%&>%&Hown)"; try done. subst.
......
...@@ -101,17 +101,8 @@ Section types. ...@@ -101,17 +101,8 @@ Section types.
Context `{heapG Σ, lifetimeG Σ, thread_localG Σ}. Context `{heapG Σ, lifetimeG Σ, thread_localG Σ}.
Program Definition bot := Program Definition bot :=
{| ty_size := 0; ty_dup := true; ty_of_st {| st_size := 0; st_own tid vl := False%I |}.
ty_own tid vl := False%I; ty_shr κ tid N l := False%I |}.
Next Obligation. iIntros (tid vl) "[]". Qed. Next Obligation. iIntros (tid vl) "[]". Qed.
Next Obligation.
iIntros (????????) "Hb Htok".
iVs (lft_borrow_exists with "Hb Htok") as (vl) "[Hb Htok]". set_solver.
iVs (lft_borrow_split with "Hb") as "[_ Hb]". set_solver.
iVs (lft_borrow_persistent with "Hb Htok") as "[>[] _]". set_solver.
Qed.
Next Obligation. iIntros (?????) "_ []". Qed.
Next Obligation. intros. iIntros "[]". Qed.
Program Definition unit := Program Definition unit :=
ty_of_st {| st_size := 0; st_own tid vl := (vl = [])%I |}. ty_of_st {| st_size := 0; st_own tid vl := (vl = [])%I |}.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment