Automation 证明自动化
假设通过应用策略Automation 证明自动化,automation,coq,proof,Automation,Coq,Proof,假设通过应用策略T,有一系列子目标: ______________________________________(1/10) A ______________________________________(2/10) A' ______________________________________(3/10) A'' 假设我们知道引理L可以用来证明A和A',但是不是A' 我的问题是,我们能否用L的应用结果对T进行排序,这只给我留下了一个子目标A' 我试过T;应用L.但没有成功,因为排序似
T
,有一系列子目标:
______________________________________(1/10)
A
______________________________________(2/10)
A'
______________________________________(3/10)
A''
假设我们知道引理L
可以用来证明A
和A'
,但是不是A'
我的问题是,我们能否用L
的应用结果对T
进行排序,这只给我留下了一个子目标A'
我试过T;应用L.
但没有成功,因为排序似乎需要证明所有分支/子目标
我还试着用T的
来控制自动化;从SSReflect应用L.
,这是本文建议的。不幸的是,Coq也被卡住了,并将Ltac调用报告给。。。上次呼叫失败。
您可以使用尝试战术,如下所示:
T; try by apply L.
这将执行以下操作。首先,它适用于T
。然后,在每个子目标上,它通过应用L应用策略。如果策略成功,那就好了。否则,如果失败,try
什么也不做。我建议使用T;请按Arthur提供的应用L.
进行尝试。但是如果你需要更多的控制,你可以使用
T; [ (* first goal *) now apply L
| (* second goal *) now apply L
| (* last goal *) idtac ].
Coq8.6也有目标选择器,所以如果T创建了4个子目标,您可以编写
T. 1-2,4: apply L.
要在除第三个子目标以外的所有子目标中应用L。正如Vilhelm所提到的,Coq 8.6有目标选择器
你也可以做T;仅1,3:应用L.
,其优点是只对战术T
生成的子目标进行编号
看