Set Implicit Arguments.
Fixpoint Prefix {A} (l1 : list A) l2 : Prop :=
match l1, l2 with
| a :: l1', b :: l2' => a = b /\ Prefix l1' l2'
| [], _ => True
| _, _ => False
end.
Section prefix.
Variable A : Type.

(* Specifications: *)
Lemma Prefix_refl :
forall (l : list A),
Prefix l l.