对Coq中的两个子目标使用相同的证明

时间:2018-11-01 09:57:33

标签: coq

在归纳类型的归纳之后,我有两个子目标可以证明。假设和目标略有不同,但可以通过相同的(长)证明来解决,目前看来像这样:

induction x.
{
  admit.
}
{
  <long proof>
}
{
  <copy-paste of long proof>
}

是否有办法避免这种复制粘贴并保持交互性,例如通过编写类似于以下内容的内容?

induction x.
{
  admit.
}
all:
{
  <long proof>
}

1 个答案:

答案 0 :(得分:2)

有时候,您可以通过中间引理解决这些目标:

assert (H : statement_of_lemma).
{ 
  proof...
}

稍后,您只需将H应用于每个子情况。