Splitting and combining lists
Define two functions with the following type
split
: forall A B : Type, list (A * B) -> list A * list B
combine
: forall A B : Type, list A -> list B -> list (A * B)
and the usual behavior (transform a list of pairs into
a pair of lists containing the same data, and vice-versa, whenever possible)
Prove a simple theorem relating split and combine
Solution
Look at this file