Isabelle 将引理应用于有界变量
我可以证明以下引理:Isabelle 将引理应用于有界变量,isabelle,Isabelle,我可以证明以下引理: lemma lem1: assumes "(a::real) ≤ b / c" and "c > 0" shows "a * c ≤ b" using assms using pos_le_divide_eq[of "c" "a" "b"] by auto 但是,如果使用绑定变量,则证明不起作用 lemma lem2: assumes "∀a b c. (a::real) ≤ b / c" and "∀c. c > 0" shows "∀a b c. a *
lemma lem1: assumes "(a::real) ≤ b / c" and "c > 0" shows "a * c ≤ b"
using assms
using pos_le_divide_eq[of "c" "a" "b"] by auto
但是,如果使用绑定变量,则证明不起作用
lemma lem2: assumes "∀a b c. (a::real) ≤ b / c" and "∀c. c > 0" shows "∀a b c. a * c ≤ b"
using assms
using pos_le_divide_eq[of "c" "a" "b"]
插入∀ 将量词放入pos_le_divide_eq中会更改数据类型,因此这是不可能的。如何解决lem2?在当前阅读的
lem2
中,第一个和最后一个假设讨论了不同的c
,即∀Cc>0
也可以写成∀Dd>0
,而在lem1
中,两个c
都引用相同的变量
因此,如果第一个公式中的c
应始终为正,则只应存在一个假设∀a、b、c。(a::真实)≤ b/c∧ c>0
。或者,如果预期任何值为正值,则第二个假设需要澄清c
的类型,类似于第一个假设中指定的方式:∀C(c::real)>0
在应用任何一项更改后,可以通过使用pos_le_divide_eq[的“c”“a”“b”]在不使用的情况下使用自动来证明的更改lem2