我正在尝试linordered_field_class.frac_le
在 Isar 证明中使用该规则。这是代码片段(它可能取决于证明的前面部分,但这不太可能)。n
是 nat 类型。
...
then have 4:"2 ≤ (2^(n+1)::real)" by simp
have 1:"(0::real)≤(1::real)" by simp
have 2: "1≤(1::real)" by simp
have 3:"(0::real)≤(2::real)" by simp
from 1 2 3 4 have "1/(2^(n+1))≤1/(2::real)" by (rule linordered_field_class.frac_le)
我认为我已正确应用该规则,但它抱怨“无法完成证明”。我认为这可能是类型错误,因此使用 过度杀伤:: real
,但我无法修复它。有谁知道可能是什么问题,以及如何解决?或者只是证明这种陈述的另一种方法。