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

Make iAssert infer the cmra M of the asserted uPred M.

parent 8f839433
No related branches found
No related tags found
No related merge requests found
......@@ -713,7 +713,7 @@ Tactic Notation "iLöb" "{" ident(x1) ident(x2) ident(x3) ident(x4)
ltac:(iIntros { x1 x2 x3 x4 x5 x6 x7 x8 }).
(** * Assert *)
Tactic Notation "iAssert" constr(Q) "with" constr(Hs) "as" constr(pat) :=
Tactic Notation "iAssert" open_constr(Q) "with" constr(Hs) "as" constr(pat) :=
let H := iFresh in
let Hs := spec_pat.parse Hs in
lazymatch Hs with
......@@ -735,7 +735,7 @@ Tactic Notation "iAssert" constr(Q) "with" constr(Hs) "as" constr(pat) :=
| ?pat => fail "iAssert: invalid pattern" pat
end.
Tactic Notation "iAssert" constr(Q) "as" constr(pat) :=
Tactic Notation "iAssert" open_constr(Q) "as" constr(pat) :=
iAssert Q with "[]" as pat.
(** * Rewrite *)
......
......@@ -53,7 +53,7 @@ Lemma Q_res_join γ : barrier_res γ Ψ1 ★ barrier_res γ Ψ2 ⊢ ▷ barrier_
Proof.
iIntros "[Hγ Hγ']";
iDestruct "Hγ" as {x} "[#Hγ Hx]"; iDestruct "Hγ'" as {x'} "[#Hγ' Hx']".
iAssert ( (x x'):iProp)%I as "Hxx" .
iAssert ( (x x'))%I as "Hxx" .
{ iCombine "Hγ" "Hγ'" as "Hγ2". iClear "Hγ Hγ'".
rewrite own_valid csum_validI /= agree_validI agree_equivI later_equivI /=.
rewrite -{2}[x]cFunctor_id -{2}[x']cFunctor_id.
......
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