Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在Isabelle/Isar证明中需要以下琐碎的自等式?_Isabelle - Fatal编程技术网

为什么在Isabelle/Isar证明中需要以下琐碎的自等式?

为什么在Isabelle/Isar证明中需要以下琐碎的自等式?,isabelle,Isabelle,我试图学习isabelle/Isar,并从Rings.thy中获得以下关于mod的简单证明。我复制了type类以避免与原始类冲突: class semiring_modulo1 = comm_semiring_1_cancel + divide + modulo + assumes div_mult_mod_eq: "a div b * b + a mod b = a" begin 这就是引理,它的证明让我困惑。第一行是有意义的,因为它使用了先前的定理,并通过对称性重写

我试图学习isabelle/Isar,并从
Rings.thy
中获得以下关于
mod
的简单证明。我复制了type类以避免与原始类冲突:

class semiring_modulo1 = comm_semiring_1_cancel + divide + modulo +
  assumes div_mult_mod_eq: "a div b * b + a mod b = a"
begin
这就是引理,它的证明让我困惑。第一行是有意义的,因为它使用了先前的定理,并通过对称性重写了它。但是接下来的两行看起来真的很奇怪。它们中的每一个都表示相同的事物等于自身(例如,
“a div b=a div b”
)。它们似乎没用/没有意义。它们没有连接到引理中的
q
r
(证明中从未提到
q
r

我的问题是:

为什么这些空洞的等式是必要的(如果不考虑这些等式,就会证明问题)

这些在英语/米扎语中的等效语句是什么


在Isar中,是否有其他更接近英语的方式来编写证明(例如,采用q=a div b…)。只是,(由
获取
关键字生成)的规则
如下所示:

?q1 = a div b ⟹ ?r1 = a mod b ⟹ a = ?q1 * b + ?r1 ⟹ thesis
这是高阶逻辑中存在语句的常用编码。
a div b=a div b
a mod b=a mod b
仅为
blast
提供有关如何实例化前两个假设的提示。然而,这似乎不是真正需要的,它也可以在没有这两个微不足道的等式的情况下工作

在任何情况下,即使我想给出实例化提示,我也可能会用
那个[a div b”“a mod b”]
那个[refl refl]
来代替

也就是说,我不确定这个引理为什么会存在。这些假设似乎有点空洞

?q1 = a div b ⟹ ?r1 = a mod b ⟹ a = ?q1 * b + ?r1 ⟹ thesis