(** Multiply all elements in list with a *)
Definition mapmult (a : Z) (l : Zlist) := map Z Z (fun x : Z => (a * x)%Z) l.

(* Specifications: *)
Lemma mapmult_image :
forall (a : Z) (l : Zlist) (x : Z),
inlist Z x l -> inlist Z (a * x)%Z (mapmult a l).
Lemma mapmult_orig :
forall (a : Z) (l : Zlist) (y : Z),
inlist Z y (mapmult a l) -> exists x : Z, inlist Z x l /\ y = (a * x)%Z.