proposition: Theorem firstn_snd_split_app_gen : forall (A B : Type)(ls1 ls2 : list (A * B)) n, n = length ls1 -> firstn n (snd (split (ls1 ++ ls2))) = snd (split ls1).
proof: Proof. intuition idtac; subst. eapply firstn_snd_split_app. Qed.
imports: FCF.Rat List Permutation Arith FCF.EqDec FCF.StdNat Bool Permutation