我从必须证明的定理之一中提取出以下目标:
∃ys zs. [x] = ys @ zs ∧ P ys zs ⟹ P [] [x] ∨ P [x] []
这里我想应用存在消除规则,但它产生了两个奇怪的子目标:
1. ∃ys zs. [x] = ys @ zs ∧ P ys zs ⟹ ∃x. ?P25 x
2. ⋀xa. ∃ys zs. [x] = ys @ zs ∧ P ys zs ⟹ ?P25 xa ⟹ P [] [x] ∨ P [x] []
这个想法是,如果我可以删除量词,那么证明确实很容易。如果 [x]= ys @ zs 那么有两种可能性。 ys = [x]、zs = [] 或相反。因此,我们将 P [x] [] 或 P [] [x]。
如何在不使用 Isar、仅使用 apply 命令的情况下证明这一点?
最佳答案
我不知道为什么存在消除策略在您的情况下失败,但以下行成功了。
by (elim exE, rename_tac ys zs, case_tac ys, auto)
这里,rename_tac将新获得的列表重命名为用户选择的名称ys
和zs
,以便之后对ys进行案例分析
(空或非空)是可能的。
关于isabelle - 在不使用 Isar 的情况下证明存在于场所中的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53083246/