我正在研究一个有假设的证明
H : exists a b v, P a b v
如果我使用inversion H
,那么我就会恢复
a : nat
H1 : exists b v, P a b v.
这很好,但是我需要再使用两次反转来恢复b和v。 是否只有一个命令可以同时恢复a,b,v?
答案 0 :(得分:3)
您可以使用模式列表(p1 & ... & pn)
作为右关联二元归纳构造函数的序列,例如conj
或ex_intro
:
destruct H as (a & b & v & H).
参考手册的另一个很好的例子:如果我们有一个假设
H: A /\ (exists x, B /\ C /\ D)
然后,我们可以用
破坏它destruct H as (a & x & b & c & d).
答案 1 :(得分:2)
是的,通过为要引入的对象指定粘合剂,如下所示:
inversion [a [b [v H']]].
请注意,destruct
也适用于此(使用相同的语法),它会生成稍微简单的证明(通常,手册会警告inversion
生成的大型证据。)