proposition: Theorem append_splitVector_h : forall (A : Set) n1 n2 (x : Vector.t A (n1 + n2)), (Vector.append (fst (splitVector n1 n2 x)) (snd (splitVector n1 n2 x))) = x.
proof: Proof. induction n1; intuition; simpl in *. destruct (vector_S x). destruct H. subst. simpl. remember (splitVector n1 n2 x1) as z. destruct z. simpl. f_equal. specialize (IHn1 n2 x1). rewrite <- Heqz in IHn1. simpl in *. trivial. Qed.
imports: FCF.FCF FCF.SemEquiv FCF.DetSem