Further lemmas about List.take, List.drop, List.zip and List.zipWith. #
These are in a separate file from most of the list lemmas
as they required importing more lemmas about natural numbers, and use omega.
take #
Taking the first n elements in l₁ ++ l₂ is the same as appending the first n elements
of l₁ to the first n - l₁.length elements of l₂.
drop #
Dropping the elements up to n in l₁ ++ l₂ is the same as dropping the elements up to n
in l₁, dropping the elements up to n - l₁.length in l₂, and appending them.
The i + j-th element of a list coincides with the j-th element of the list obtained by
dropping the first i elements. Version designed to rewrite from the big list to the small list.
The i + j-th element of a list coincides with the j-th element of the list obtained by
dropping the first i elements. Version designed to rewrite from the small list to the big list.