Isabelle 函数 termination/completeness
Function termination/completeness on Isabelle
我有一个语言环境 field
和函数 pow_F
定义如下
function (in field)
pow_F :: "'a ⇒ nat ⇒ 'a" where
"pow_F x 0 = ONE_F" |
"pow_F x (Suc n) = x ⋆ (pow_F x n)"
其中 ONE_F
和 ⋆
是字段语言环境中定义的中性元素和乘法函数。
这个函数的行为很奇怪,因为我什至无法证明以下内容
lemma (in field) "pow_F x 0 = ONE_F"
尽管它直接遵循 pow_F
的定义。当我 运行 大锤时,证明者要么放弃,要么计时器 运行 结束。
这是怎么回事?
当你使用function
时,你必须证明终止才能使用pow_F.simps
规则。您可能想改用 fun
(自动证明终止)。
我有一个语言环境 field
和函数 pow_F
定义如下
function (in field)
pow_F :: "'a ⇒ nat ⇒ 'a" where
"pow_F x 0 = ONE_F" |
"pow_F x (Suc n) = x ⋆ (pow_F x n)"
其中 ONE_F
和 ⋆
是字段语言环境中定义的中性元素和乘法函数。
这个函数的行为很奇怪,因为我什至无法证明以下内容
lemma (in field) "pow_F x 0 = ONE_F"
尽管它直接遵循 pow_F
的定义。当我 运行 大锤时,证明者要么放弃,要么计时器 运行 结束。
这是怎么回事?
当你使用function
时,你必须证明终止才能使用pow_F.simps
规则。您可能想改用 fun
(自动证明终止)。