Section Scan.
Variables (T1 : Type) (x1 : T1) (T2 : Type) (x2 : T2).
Variables (f : T1 -> T1 -> T2) (g : T1 -> T2 -> T1).
Fixpoint pairmap x s := if s is y :: s' then f x y :: pairmap y s' else [::].

(* Specifications: *)
Lemma size_pairmap x s : size (pairmap x s) = size s.
Lemma zip_cat s1 s2 t1 t2 :
size s1 = size t1 -> zip (s1 ++ s2) (t1 ++ t2) = zip s1 t1 ++ zip s2 t2.
Lemma zip_rcons s1 s2 z1 z2 :
size s1 = size s2 ->
zip (rcons s1 z1) (rcons s2 z2) = rcons (zip s1 s2) (z1, z2).