summaryrefslogtreecommitdiff
path: root/test-suite/bugs/closed/shouldsucceed/1614.v
diff options
context:
space:
mode:
Diffstat (limited to 'test-suite/bugs/closed/shouldsucceed/1614.v')
-rw-r--r--test-suite/bugs/closed/shouldsucceed/1614.v21
1 files changed, 21 insertions, 0 deletions
diff --git a/test-suite/bugs/closed/shouldsucceed/1614.v b/test-suite/bugs/closed/shouldsucceed/1614.v
new file mode 100644
index 00000000..6bc165d4
--- /dev/null
+++ b/test-suite/bugs/closed/shouldsucceed/1614.v
@@ -0,0 +1,21 @@
+Require Import Ring.
+Require Import ArithRing.
+
+Fixpoint eq_nat_bool (x y : nat) {struct x} : bool :=
+match x, y with
+| 0, 0 => true
+| S x', S y' => eq_nat_bool x' y'
+| _, _ => false
+end.
+
+Theorem eq_nat_bool_implies_eq : forall x y, eq_nat_bool x y = true -> x = y.
+Proof.
+induction x; destruct y; simpl; intro H; try (reflexivity || inversion H).
+apply IHx in H; rewrite H; reflexivity.
+Qed.
+
+Add Ring MyNatSRing : natSRth (decidable eq_nat_bool_implies_eq).
+
+Goal 0 = 0.
+ ring.
+Qed.