1
datatype natural = Zero | Succ natural
primrec add :: "natural ⇒ natural ⇒ natural"
where
"add Zero m = m"
| "add (Succ n) m = Succ (add n m)"
我证明
lemma add_succ_right: "⋀ m n. add m (Succ n) = Succ (add m n)"
为是数学,它具有普遍的量化是很重要的。然而,在简化器使用这个事实,这是更好地做没有:
lemma add_succ_right_rewrite: "add m (Succ n) = Succ (add m n)"
是什么样的这些版本,我更喜欢在什么情况下,其中一个共同的智慧?
“引理语句中的自由变量会自动量化” - 通过在已证明的语句中使用原理图变量? – Gergely
是的,自由变量,当它们离开它们固定的范围(或者明确地用'fixes'或者隐式地作为命令'lemma'的一部分)时自动变成原理图变量。 –