aboutsummaryrefslogtreecommitdiff
path: root/src/Compilers
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-04-13 15:39:16 -0400
committerGravatar Jason Gross <jgross@mit.edu>2017-04-13 15:39:16 -0400
commite860b3d92634bfb11d54b96effc05cb2aa9dba41 (patch)
tree6e37854917c4cd633ba1e75180b7e2eefda3f071 /src/Compilers
parent95dbe2004acd634b01aad56f4912244f7e9fa598 (diff)
Add lookupb_remove_not_in
Diffstat (limited to 'src/Compilers')
-rw-r--r--src/Compilers/Named/ContextProperties.v6
-rw-r--r--src/Compilers/Named/ContextProperties/Tactics.v3
2 files changed, 8 insertions, 1 deletions
diff --git a/src/Compilers/Named/ContextProperties.v b/src/Compilers/Named/ContextProperties.v
index 1db840753..9956f3b48 100644
--- a/src/Compilers/Named/ContextProperties.v
+++ b/src/Compilers/Named/ContextProperties.v
@@ -52,6 +52,12 @@ Section with_context.
= find_Name_and_val t n N v (lookupb ctx n t).
Proof using ContextOk. revert ctx; induction T; t. Qed.
+ Lemma lookupb_remove_not_in (ctx : Context)
+ T N t n
+ (H : @find_Name n T N = None)
+ : lookupb (remove ctx N) n t = lookupb ctx n t.
+ Proof using ContextOk. revert ctx; induction T; t. Qed.
+
Lemma find_Name_and_val_Some_None
{var' var''}
{t n T N}
diff --git a/src/Compilers/Named/ContextProperties/Tactics.v b/src/Compilers/Named/ContextProperties/Tactics.v
index 9616725d6..f438d5444 100644
--- a/src/Compilers/Named/ContextProperties/Tactics.v
+++ b/src/Compilers/Named/ContextProperties/Tactics.v
@@ -37,7 +37,8 @@ Ltac inversion_step :=
Ltac rewrite_lookupb_extendb_step :=
first [ rewrite lookupb_extendb_different by congruence
| rewrite lookupb_extendb_same
- | rewrite lookupb_extendb_wrong_type by assumption ].
+ | rewrite lookupb_extendb_wrong_type by assumption
+ | rewrite lookupb_removeb by congruence ].
Ltac specializer_t_step :=
match goal with
| _ => progress specialize_by_assumption