【发布时间】:2017-12-06 00:03:37
【问题描述】:
以 Isabelle 中自然数不等式的以下定义为例:
inductive unequal :: "nat ⇒ nat ⇒ bool" where
zero_suc: "unequal 0 (Suc _)" |
suc_zero: "unequal (Suc _) 0" |
suc_suc: "unequal n m ⟹ unequal (Suc n) (Suc m)"
我想证明unequal,即¬ unequal n n的非自反性。为了便于说明,让我首先证明人为的引理¬ unequal (n + m) (n + m):
lemma "¬ unequal (n + m) (n + m)"
proof
assume "unequal (n + m) (n + m)"
then show False
proof (induction "n + m" "n + m" arbitrary: n m)
case zero_suc
then show False by simp
next
case suc_zero
then show False by simp
next
case suc_suc
then show False by presburger
qed
qed
在前两种情况下,False 必须从假设 0 = n + m 和 Suc _ = n + m 推导出来,这是微不足道的。
我希望¬ unequal n n 的证明可以以类似的方式完成,即根据以下模式:
lemma "¬ unequal n n"
proof
assume "unequal n n"
then show False
proof (induction n n arbitrary: n)
case zero_suc
then show False sorry
next
case suc_zero
then show False sorry
next
case suc_suc
then show False sorry
qed
qed
特别是,我希望在前两种情况下,我得到0 = n 和Suc _ = n 的假设。然而,我没有得到任何假设,这意味着我被要求从无到有证明False。为什么会这样?如何进行不等式证明?
【问题讨论】: