diff options
author | Jason Gross <jgross@mit.edu> | 2017-05-14 23:07:48 -0400 |
---|---|---|
committer | Jason Gross <jgross@mit.edu> | 2017-05-15 01:26:52 -0400 |
commit | 91e1f5ec63604304cfe8d4211e053cb9fc9a827d (patch) | |
tree | db159ebd4c2711edc1c25b9fa22e2a26dd17a9a9 /src | |
parent | 4da58691e6e1d3c52d988ed454ae50b4d028668c (diff) |
Add a stronger lemma to registerassigninterp
Diffstat (limited to 'src')
-rw-r--r-- | src/Compilers/Named/RegisterAssignInterp.v | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/Compilers/Named/RegisterAssignInterp.v b/src/Compilers/Named/RegisterAssignInterp.v index 135d84c31..bcf276517 100644 --- a/src/Compilers/Named/RegisterAssignInterp.v +++ b/src/Compilers/Named/RegisterAssignInterp.v @@ -120,6 +120,21 @@ Section language. end. Qed. + Lemma find_Name_and_val_same_oval {var' t T n_in n_out NI NO V} + (H2 : find_Name_and_val base_type_code_dec InName_dec t n_in NI NO None = Some n_out) + (H3 : find_Name_and_val base_type_code_dec OutName_dec t n_out NO NI None = Some n_in) + : find_Name_and_val base_type_code_dec InName_dec t (T:=T) (var':=var') n_in NI V None + = find_Name_and_val base_type_code_dec OutName_dec t (T:=T) n_out NO V None. + Proof using Type. + t_find T; + match goal with + | [ H : _ = None |- _ ] + => first [ eapply find_Name_and_val_OutToIn in H; [ | eassumption ] + | eapply find_Name_and_val_InToOut in H; [ | eassumption ] ]; + destruct H + end. + Qed. + Local Ltac t := repeat first [ reflexivity | assumption |