aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mppa_k1c/SelectOp.vp1
-rw-r--r--mppa_k1c/SelectOpproof.v6
2 files changed, 7 insertions, 0 deletions
diff --git a/mppa_k1c/SelectOp.vp b/mppa_k1c/SelectOp.vp
index 019de37d..da0049fe 100644
--- a/mppa_k1c/SelectOp.vp
+++ b/mppa_k1c/SelectOp.vp
@@ -365,6 +365,7 @@ Nondetfunction notint (e: expr) :=
| Eop Onxor (e1:::e2:::Enil) => Eop Oxor (e1:::e2:::Enil)
| Eop (Onxorimm n) (e1:::Enil) => Eop (Oxorimm n) (e1:::Enil)
| Eop Oandn (e1:::e2:::Enil) => Eop Oorn (e2:::e1:::Enil)
+ | Eop Oorn (e1:::e2:::Enil) => Eop Oandn (e2:::e1:::Enil)
| Eop Onot (e1:::Enil) => e1
| Eop (Ointconst k) Enil => Eop (Ointconst (Int.not k)) Enil
| _ => Eop Onot (e:::Enil)
diff --git a/mppa_k1c/SelectOpproof.v b/mppa_k1c/SelectOpproof.v
index 76cfdafe..49980c51 100644
--- a/mppa_k1c/SelectOpproof.v
+++ b/mppa_k1c/SelectOpproof.v
@@ -704,6 +704,12 @@ Proof.
rewrite Int.not_and_or_not.
rewrite Int.not_involutive.
apply Int.or_commut.
+ - subst x. TrivialExists. simpl.
+ destruct v0; destruct v1; simpl; trivial.
+ f_equal. f_equal.
+ rewrite Int.not_or_and_not.
+ rewrite Int.not_involutive.
+ apply Int.and_commut.
- subst x. exists v1; split; trivial.
- TrivialExists.
- TrivialExists.