Section Reverse_Induction.
End Reverse_Induction.
(*************************)
(** ** Concatenation     *)
(*************************)
Fixpoint concat (l : list (list A)) : list A :=
match l with
| nil => nil
| cons x l => x ++ concat l
end.
(***********************************)
(** ** Decidable equality on lists *)
(***********************************)
Hypothesis eq_dec : forall (x y : A), {x = y}+{x <> y}.

Lemma in_map_iff : forall l y, In y (map l) <-> exists x, f x = y /\ In x l.