The function MAP2_CONV is a conversion for computing the result
of mapping a binary function f:ty1->ty2->ty3 down two lists
--`[l11;...;l1n]`-- whose elements are of type ty1 and
--`[l21;...;l2n]`-- whose elements are of type ty2. The lengths of
the two lists must be identical. The first
argument to MAP2_CONV is expected to be a conversion
that computes the result of applying the function f to a pair of
corresponding elements of these lists. When applied to a term
--`f l1i l2i`--, this conversion should return a theorem of the form
|- (f l1i l2i) = ri, where ri is the result of applying the function
f to the elements l1i and l2i.
Given an appropriate conv, the conversion MAP2_CONV conv takes a
term of the form --`MAP2 f [l11;...;dl2tn] [l21;...;l2n]`-- and returns
the theorem
|- MAP2 f [l11;...;l1n] [l21;...;l2n] = [r1;...;rn]
where conv (--`f l1i l2i`--) returns |- (f l1i l2i) = ri for
i from 1 to n.