我试图在 Isabelle/HOL 中证明这个引理。但是 nitpick 找到了反例,既对这个引理也对其否定。
lemma "(0::nat) ≠ undefined"
这怎么可能呢?我查了一下 undefined 的定义,发现它是一个公理:
axiomatization undefined :: 'a
但这还是经典逻辑,对吧?所以要么 "(0::nat) = undefined"
成立,要么 "(0::nat) ≠ undefined"
成立。
背景:
我有一个类型为:
type_synonym myfun = "nat ⇒ nat"
的函数,并在 locale 中对其值域和定义域施加约束。当我试图取一个特定的函数并展示它满足所有条件时,我遇到了问题,因为其中一些条件仅对非 undefined 值成立。
提前感谢你的帮助 :)
undefined
通常可以让你的生活更轻松。我会更新我的答案,删除涉及该笔误的部分。 - Manuel Eberllemma "undefined = (0::nat) ∨ undefined ≠ (0::nat)" by blast
。 - ammbauer