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

Owning units.

parent 764f0e4b
No related branches found
No related tags found
No related merge requests found
...@@ -471,6 +471,15 @@ Proof. ...@@ -471,6 +471,15 @@ Proof.
rewrite (associative op), <-(commutative op z1), <-!(associative op), <-Hy2. rewrite (associative op), <-(commutative op z1), <-!(associative op), <-Hy2.
by rewrite (associative op), (commutative op z1), <-Hy1. by rewrite (associative op), (commutative op z1), <-Hy1.
Qed. Qed.
Lemma uPred_own_unit (a : M) : uPred_own (unit a) ( uPred_own (unit a))%I.
Proof.
intros x n; split; [intros [a' Hx]|by apply uPred_always_necessity].
assert ( a'', unit (unit a a') unit (unit a) a'') as [a'' Ha]
by (rewrite <-ra_included_spec; auto using ra_unit_weaken).
by exists a''; rewrite Hx, Ha, ra_unit_idempotent.
Qed.
Lemma uPred_own_empty `{Empty M, !RAEmpty M} : True%I uPred_own ∅.
Proof. intros x [|n] ??; [done|]. by exists x; rewrite (left_id _ _). Qed.
Lemma uPred_own_valid (a : M) : uPred_own a uPred_valid a. Lemma uPred_own_valid (a : M) : uPred_own a uPred_valid a.
Proof. Proof.
intros x n Hv [a' Hx]; simpl; rewrite Hx in Hv; eauto using cmra_valid_op_l. intros x n Hv [a' Hx]; simpl; rewrite Hx in Hv; eauto using cmra_valid_op_l.
......
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