我想证明如果一个蕴涵为真(b --> c
),那么假设{{ 1}}和a --> c
。
这是我要证明的具体玩具示例:
a
证明未成功,Isabelle 2018继续运行,“自动”部分显示为紫色。我应该如何证明这种引理?
答案 0 :(得分:3)
似乎您的问题使简化程序(属于auto
)循环了。我真的不明白为什么,但是这些事情偶尔会发生。
发生这种情况时,有时可以帮助运行try0
(仅尝试几种常见的自动证明方法并返回成功的方法)或sledgehammer
(试图将问题转化为更简单的形式并提供给外部证明者;如果他们可以证明它,那么它将尝试将证明转换回Isabelle。)
在这种情况下,try0
和sledgehammer
都发现简单的apply metis
可以完成这项工作。 auto
和simp
之类的方法可以做很多事情,其中最值得注意的是,使用预定义的规则集进行“愚蠢”的重写。 metis
的功能比较聪明,但是您需要每个应该手动使用它,并且它不太适合Isabelle / HOL。>
但是,由于此问题是简单的一阶逻辑,因此metis
可以轻松地自行解决,而无需明确给出事实,并且可以避免导致自动和简化的任何陷阱。