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