aboutsummaryrefslogtreecommitdiff
path: root/test-suite/output/Error_msg_diffs.v
diff options
context:
space:
mode:
authorJim Fehrle2018-10-07 15:14:56 -0700
committerJim Fehrle2019-02-28 15:39:08 -0800
commitef2fce93057484b015c85713ad83f53f88762271 (patch)
tree9d7f73ebe0fa75e91855099465f3c3469cbe27ca /test-suite/output/Error_msg_diffs.v
parent9736f255287a7207d00422b06de802d62b8304fe (diff)
Show diffs in error messages if color is enabled
Diffstat (limited to 'test-suite/output/Error_msg_diffs.v')
-rw-r--r--test-suite/output/Error_msg_diffs.v35
1 files changed, 35 insertions, 0 deletions
diff --git a/test-suite/output/Error_msg_diffs.v b/test-suite/output/Error_msg_diffs.v
new file mode 100644
index 0000000000..11c766b210
--- /dev/null
+++ b/test-suite/output/Error_msg_diffs.v
@@ -0,0 +1,35 @@
+(* coq-prog-args: ("-color" "on" "-async-proofs" "off") *)
+(* Re: -async-proofs off, see https://github.com/coq/coq/issues/9671 *)
+(* Shows diffs in an error message for an "Unable to unify" error *)
+Require Import Arith List Bool.
+
+Inductive btree (T : Type) : Type :=
+ Leaf | Node (val : T) (t1 t2 : btree T).
+
+Arguments Leaf {T}.
+Arguments Node {T}.
+
+Fixpoint rev_tree {T : Type} (t : btree T) : btree T :=
+match t with
+| Leaf => Leaf
+| Node x t1 t2 => Node x (rev_tree t2) (rev_tree t1)
+end.
+
+Fixpoint count {T : Type} (p : T -> bool) (t : btree T) : nat :=
+match t with
+| Leaf => 0
+| Node x t1 t2 =>
+ (if p x then 1 else 0) + (count p t1 + count p t2)
+end.
+
+Lemma count_rev_tree {T} (p : T -> bool) t : count p (rev_tree t) = count p t.
+Proof.
+induction t as [ | a t1 IH1 t2 IH2].
+ easy.
+simpl.
+rewrite IH1.
+rewrite IH2.
+reflexivity.
+rewrite (Nat.add_comm (count p t2)).
+easy.
+Qed.