Coq 拆分向量的尾部并附加同一向量的头部
我想证明Coq 拆分向量的尾部并附加同一向量的头部,coq,Coq,我想证明aaa,我们可能需要ttt来证明它 我没有办法证明他们。 请告诉我你的解决办法 Require Import Coq.Vectors.Vector. Lemma ttt A n m (v:t A ((S n)+m)): append (fst (splitat 1 v)) (fst (splitat n (Vector.tl v))) = fst (splitat (S n) v). Proof. Admitted. Lemma aaa A n m (v:t A ((S n)+m))
aaa
,我们可能需要ttt
来证明它
我没有办法证明他们。
请告诉我你的解决办法
Require Import Coq.Vectors.Vector.
Lemma ttt A n m (v:t A ((S n)+m)): append (fst (splitat 1 v)) (fst (splitat n (Vector.tl v))) = fst (splitat (S n) v).
Proof.
Admitted.
Lemma aaa A n m (v:t A ((S n)+m)): cons _ (Vector.hd v) n (fst (splitat n (Vector.tl v))) = fst (splitat (S n) v).
Proof.
rewrite -ttt.
remember (splitat n (Vtail v)).
Admitted.
当你有一个非空向量
v:vector.ta(sx)
时,你可以使用eta
来公开它的构造函数,并希望使表达式可以简化
Lemma aaa A n m (v:t A ((S n)+m)): cons _ (Vector.hd v) n (fst (splitat n (Vector.tl v))) = fst (splitat (S n) v).
Proof.
cbn in v. rewrite (eta v). cbn.
destruct (splitat n _). cbn.
reflexivity.
Qed.
同样的校对脚本也适用于
ttt
siml;破坏分裂;自反性。
足以证明aaa
和ttt
。