summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2013-05-01 09:25:47 +0000
committerGravatar xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e>2013-05-01 09:25:47 +0000
commit402180a9b3d72825bd5c824c4aa8dcf257328a31 (patch)
treedcf7bfd1e175a915f53cc2a90d1607386cf79878
parent7717d9e5f781a0b0d79f72c5439cf822f4ea78d0 (diff)
Coq-defined equality functions for Allocation. (continued)
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2226 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
-rw-r--r--arm/Op.v13
-rw-r--r--powerpc/Op.v13
2 files changed, 20 insertions, 6 deletions
diff --git a/arm/Op.v b/arm/Op.v
index 3dfea77..2c84d90 100644
--- a/arm/Op.v
+++ b/arm/Op.v
@@ -144,14 +144,21 @@ Proof.
decide equality.
Defined.
+Definition eq_condition (x y: condition) : {x=y} + {x<>y}.
+Proof.
+ generalize Int.eq_dec; intro.
+ assert (forall (x y: comparison), {x=y}+{x<>y}). decide equality.
+ generalize eq_shift; intro.
+ decide equality.
+Defined.
+
Definition eq_operation (x y: operation): {x=y} + {x<>y}.
Proof.
generalize Int.eq_dec; intro.
generalize Float.eq_dec; intro.
assert (forall (x y: ident), {x=y}+{x<>y}). exact peq.
generalize eq_shift; intro.
- assert (forall (x y: comparison), {x=y}+{x<>y}). decide equality.
- assert (forall (x y: condition), {x=y}+{x<>y}). decide equality.
+ generalize eq_condition; intro.
decide equality.
Defined.
@@ -162,7 +169,7 @@ Proof.
decide equality.
Defined.
-Global Opaque eq_shift eq_operation eq_addressing.
+Global Opaque eq_shift eq_condition eq_operation eq_addressing.
(** * Evaluation functions *)
diff --git a/powerpc/Op.v b/powerpc/Op.v
index e584726..5835717 100644
--- a/powerpc/Op.v
+++ b/powerpc/Op.v
@@ -116,13 +116,20 @@ Inductive addressing: Type :=
(** Comparison functions (used in module [CSE]). *)
+Definition eq_condition (x y: condition) : {x=y} + {x<>y}.
+Proof.
+ generalize Int.eq_dec; intro.
+ assert (forall (x y: comparison), {x=y}+{x<>y}). decide equality.
+ decide equality.
+Defined.
+
+
Definition eq_operation (x y: operation): {x=y} + {x<>y}.
Proof.
generalize Int.eq_dec; intro.
generalize Float.eq_dec; intro.
assert (forall (x y: ident), {x=y}+{x<>y}). exact peq.
- assert (forall (x y: comparison), {x=y}+{x<>y}). decide equality.
- assert (forall (x y: condition), {x=y}+{x<>y}). decide equality.
+ generalize eq_condition; intro.
decide equality.
Defined.
@@ -133,7 +140,7 @@ Proof.
decide equality.
Defined.
-Global Opaque eq_addressing eq_operation.
+Global Opaque eq_condition eq_addressing eq_operation.
(** * Evaluation functions *)