COQ证明助手-应用hypothesis

COQ证明助手-应用hypothesis,coq,coq-tactic,Coq,Coq Tactic,我正在Coqide做一个非常简单的证明作业。 我试图将假设H2应用于我的子目标,但由于某种原因,它不起作用。 我不明白为什么;有人能解释一下为什么应用H2。命令不适用 2 subgoals A : Type x : A l1, l2 : list A H : Prefix l1 l2 H2 : x :: l2 = (x :: l1) ++ [] -> Prefix (x :: l1) (x :: l2) ______________________________________(1/2)

我正在Coqide做一个非常简单的证明作业。
我试图将假设H2应用于我的子目标,但由于某种原因,它不起作用。 我不明白为什么;有人能解释一下为什么应用H2。命令不适用

2 subgoals
A : Type
x : A
l1, l2 : list A
H : Prefix l1 l2
H2 : x :: l2 = (x :: l1) ++ [] -> Prefix (x :: l1) (x :: l2)
______________________________________(1/2)
x :: l2 = (x :: l1) ++ []
______________________________________(2/2)
exists l3 : list A, x :: l2 = (x :: l1) ++ l3

apply H2
没有工作的机会,因为它的结论是
前缀(x::l1)(x::l2)
,这看起来不像你的目标。
H2
的前提是你的目标:
x::l2=(x::l1)+[]
然而,这意味着如果你首先设法解决你的目标,你只能
应用
H2
,这不是很有用