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