【发布时间】:2026-02-12 11:40:01
【问题描述】:
这是一个非常基本的问题,我很抱歉,但我一直在尝试使用 Coq 来证明以下定理,但似乎无法弄清楚如何去做。
(* Binary tree definition. *)
Inductive btree : Type :=
| EmptyTree
| Node : btree -> btree -> btree.
(* Checks if two trees are equal. *)
Fixpoint isEqual (tree1 : btree) (tree2 : btree) : bool :=
match tree1, tree2 with
| EmptyTree, EmptyTree => true
| EmptyTree, _ => false
| _, EmptyTree => false
| Node n11 n12, Node n21 n22 => (andb (isEqual n11 n21) (isEqual n12 n22))
end.
Lemma isEqual_implies_equal : forall tree1 tree2 : btree,
(isEqual tree1 tree2) = true -> tree1 = tree2.
我一直在尝试做的是在 tree1 上应用归纳,然后是 tree2,但这并不能正常工作。看来我需要同时对两者应用归纳,但不知道如何。
【问题讨论】:
标签: coq