从(b-> c)给定a和b之间的关系证明蕴涵(a-> c)

时间:2018-08-29 08:42:41

标签: isabelle

我想证明如果一个蕴涵为真(b --> c),那么假设{{ 1}}和a --> c

这是我要证明的具体玩具示例:

a

证明未成功,Isabelle 2018继续运行,“自动”部分显示为紫色。我应该如何证明这种引理?

1 个答案:

答案 0 :(得分:3)

似乎您的问题使简化程序(属于auto)循环了。我真的不明白为什么,但是这些事情偶尔会发生。

发生这种情况时,有时可以帮助运行try0(仅尝试几种常见的自动证明方法并返回成功的方法)或sledgehammer(试图将问题转化为更简单的形式并提供给外部证明者;如果他们可以证明它,那么它将尝试将证明转换回Isabelle。)

在这种情况下,try0sledgehammer都发现简单的apply metis可以完成这项工作。 autosimp之类的方法可以做很多事情,其中​​最值得注意的是,使用预定义的规则集进行“愚蠢”的重写。 metis的功能比较聪明,但是您需要每个应该手动使用它,并且它不太适合Isabelle / HOL。

但是,由于此问题是简单的一阶逻辑,因此metis可以轻松地自行解决,而无需明确给出事实,并且可以避免导致自动和简化的任何陷阱。