是否可以在 Isar 中编写非自动形式化?
Is it possible to write non-automatic formalizations in Isar?
我有以下内容:
lemma
assumes p: "P"
assumes pimpq: "P⟶Q"
shows "P∧Q"
proof -
from pimpq p have q: "Q" by (rule impE)
from p q show ?thesis by (rule conjI)
qed
我认为这取决于基本推理规则,但阅读 Isar 参考手册第 9.4.3 Structured Methods
节中 rule
的文档后发现它使用了具有各种规则的 Classical Reasoner .并且,用..
替换by
子句也解决了目标,因此提及消除蕴涵和引入连词并不是必须的。
是否可以在 Isar 中编写严格的形式化,即不使用程序文本中未明确的任何自动化和额外规则?类似于 HOL4 中的前向证明。
如果您不想使用 classical
模块,您可以使用 Pure.rule
。
lemma
assumes p: "P"
assumes pimpq: "P⟶Q"
shows "P∧Q"
proof -
from pimpq p have q: "Q" by (Pure.rule impE)
from p q show ?thesis by (Pure.rule conjI)
qed
如果您编写 ..
Isabelle 将自动 select 一个基于标有 [intro]
或 [elim]
属性的词条的规则。
也许你也可以分享你想要在 Isabelle 中重现的 HOL4 证明,这样我们就可以在 Isabelle/HOL.
中提出等效的建议
我有以下内容:
lemma
assumes p: "P"
assumes pimpq: "P⟶Q"
shows "P∧Q"
proof -
from pimpq p have q: "Q" by (rule impE)
from p q show ?thesis by (rule conjI)
qed
我认为这取决于基本推理规则,但阅读 Isar 参考手册第 9.4.3 Structured Methods
节中 rule
的文档后发现它使用了具有各种规则的 Classical Reasoner .并且,用..
替换by
子句也解决了目标,因此提及消除蕴涵和引入连词并不是必须的。
是否可以在 Isar 中编写严格的形式化,即不使用程序文本中未明确的任何自动化和额外规则?类似于 HOL4 中的前向证明。
如果您不想使用 classical
模块,您可以使用 Pure.rule
。
lemma
assumes p: "P"
assumes pimpq: "P⟶Q"
shows "P∧Q"
proof -
from pimpq p have q: "Q" by (Pure.rule impE)
from p q show ?thesis by (Pure.rule conjI)
qed
如果您编写 ..
Isabelle 将自动 select 一个基于标有 [intro]
或 [elim]
属性的词条的规则。
也许你也可以分享你想要在 Isabelle 中重现的 HOL4 证明,这样我们就可以在 Isabelle/HOL.
中提出等效的建议