aboutsummaryrefslogtreecommitdiffstats
path: root/cfrontend/Cexec.v
diff options
context:
space:
mode:
authorXavier Leroy <xavierleroy@users.noreply.github.com>2016-09-21 17:04:39 +0200
committerGitHub <noreply@github.com>2016-09-21 17:04:39 +0200
commitccb110fc5532796e63553150a0b0ef91a0bccd61 (patch)
tree5c9847a09a4fc548a49aced0478493dbcace1aed /cfrontend/Cexec.v
parentcea20127183438dec1073706543f1fa90e9ba696 (diff)
parent320f39edca5061b84a8a45b5c33e516049c7f7fe (diff)
downloadcompcert-kvx-ccb110fc5532796e63553150a0b0ef91a0bccd61.tar.gz
compcert-kvx-ccb110fc5532796e63553150a0b0ef91a0bccd61.zip
Merge pull request #142 from maximedenes/minor-fixes
Fix minor issues in some proofs and tactics. Patch by Maxime Dénès.
Diffstat (limited to 'cfrontend/Cexec.v')
-rw-r--r--cfrontend/Cexec.v13
1 files changed, 8 insertions, 5 deletions
diff --git a/cfrontend/Cexec.v b/cfrontend/Cexec.v
index b7329a4d..a2bfa6e1 100644
--- a/cfrontend/Cexec.v
+++ b/cfrontend/Cexec.v
@@ -218,8 +218,8 @@ Definition do_volatile_store (w: world) (chunk: memory_chunk) (m: mem) (b: block
Ltac mydestr :=
match goal with
- | [ |- None = Some _ -> _ ] => intro X; discriminate
- | [ |- Some _ = Some _ -> _ ] => intro X; inv X
+ | [ |- None = Some _ -> _ ] => let X := fresh "X" in intro X; discriminate
+ | [ |- Some _ = Some _ -> _ ] => let X := fresh "X" in intro X; inv X
| [ |- match ?x with Some _ => _ | None => _ end = Some _ -> _ ] => destruct x eqn:?; mydestr
| [ |- match ?x with true => _ | false => _ end = Some _ -> _ ] => destruct x eqn:?; mydestr
| [ |- match ?x with left _ => _ | right _ => _ end = Some _ -> _ ] => destruct x; mydestr
@@ -2034,12 +2034,15 @@ Definition do_step (w: world) (s: state) : list transition :=
Ltac myinv :=
match goal with
- | [ |- In _ nil -> _ ] => intro X; elim X
+ | [ |- In _ nil -> _ ] => let X := fresh "X" in intro X; elim X
| [ |- In _ (ret _ _) -> _ ] =>
+ let X := fresh "X" in
intro X; elim X; clear X;
- [intro EQ; unfold ret in EQ; inv EQ; myinv | myinv]
+ [let EQ := fresh "EQ" in intro EQ; unfold ret in EQ; inv EQ; myinv | myinv]
| [ |- In _ (_ :: nil) -> _ ] =>
- intro X; elim X; clear X; [intro EQ; inv EQ; myinv | myinv]
+ let X := fresh "X" in
+ intro X; elim X; clear X;
+ [let EQ := fresh "EQ" in intro EQ; inv EQ; myinv | myinv]
| [ |- In _ (match ?x with Some _ => _ | None => _ end) -> _ ] => destruct x eqn:?; myinv
| [ |- In _ (match ?x with false => _ | true => _ end) -> _ ] => destruct x eqn:?; myinv
| [ |- In _ (match ?x with left _ => _ | right _ => _ end) -> _ ] => destruct x; myinv