diff options
Diffstat (limited to 'backend/Duplicateproof.v')
-rw-r--r-- | backend/Duplicateproof.v | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/backend/Duplicateproof.v b/backend/Duplicateproof.v index d8ca9cd1..c2bdf10d 100644 --- a/backend/Duplicateproof.v +++ b/backend/Duplicateproof.v @@ -85,9 +85,25 @@ Proof. constructor; eauto. (* Iop *) - destruct i'; try (inversion H; fail). monadInv H. - destruct (eq_operation _ _) eqn:EQO; try discriminate. - destruct (list_eq_dec _ _ _) eqn:LEQ; try discriminate. - destruct (Pos.eq_dec _ _) eqn:POS; try discriminate. clear EQ0. subst. + destruct (eq_operation _ _); try discriminate. + destruct (list_eq_dec _ _ _); try discriminate. + destruct (Pos.eq_dec _ _); try discriminate. clear EQ0. subst. + eapply verify_is_copy_correct_one. destruct x. eassumption. + constructor. +(* Iload *) + - destruct i'; try (inversion H; fail). monadInv H. + destruct (chunk_eq _ _); try discriminate. + destruct (eq_addressing _ _); try discriminate. + destruct (list_eq_dec _ _ _); try discriminate. + destruct (Pos.eq_dec _ _); try discriminate. clear EQ0. subst. + eapply verify_is_copy_correct_one. destruct x. eassumption. + constructor. +(* Istore *) + - destruct i'; try (inversion H; fail). monadInv H. + destruct (chunk_eq _ _); try discriminate. + destruct (eq_addressing _ _); try discriminate. + destruct (list_eq_dec _ _ _); try discriminate. + destruct (Pos.eq_dec _ _); try discriminate. clear EQ0. subst. eapply verify_is_copy_correct_one. destruct x. eassumption. constructor. Qed. |