Commit 58cfc3c9 authored by charguer's avatar charguer

app_local

parent 939f25ce
......@@ -2367,6 +2367,23 @@ Definition weakenable B (F:~~B) :=
(*------------------------------------------------------------------*)
(* ** Properties of [local] *)
(** A definition whose head is [local] satisfies [is_local] *)
Lemma local_is_local : forall B (F:~~B),
is_local (local F).
Proof using. intros. unfolds. rewrite~ local_local. Qed.
Hint Resolve local_is_local.
(** A introduction rule to establish [is_local] *)
Lemma is_local_prove : forall B (F:~~B),
(forall H Q, F H Q <-> local F H Q) -> is_local F.
Proof using.
intros. unfold is_local. apply func_ext_2.
intros. applys prop_ext. applys H.
Qed.
(** The [local] operator can be freely erased from a conclusion *)
Lemma local_erase : forall B (F:~~B),
......@@ -2394,14 +2411,6 @@ Proof using.
apply~ local_erase.
Qed.
(** A definition whose head is [local] satisfies [is_local] *)
Lemma local_is_local : forall B (F:~~B),
is_local (local F).
Proof using. intros. unfolds. rewrite~ local_local. Qed.
Hint Resolve local_is_local.
(** Weaken and frame and gc property [local] *)
Lemma local_wgframe : forall B (F:~~B) H H1 H2 Q1 Q,
......@@ -2462,6 +2471,13 @@ Proof using.
introv LF H1 H2. applys~ local_wgframe H2.
Qed.
Lemma local_weaken_post : forall B Q' (F:~~B) H Q,
is_local F ->
F H Q' ->
Q' ===> Q ->
F H Q.
Proof using. intros. apply* local_weaken. Qed.
(** Garbage collection on post-condition from [local] *)
Lemma local_gc_post : forall B Q' (F:~~B) H Q,
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment