Definition Injective {A B} (f : A->B) :=
 forall x y, f x = f y -> x = y.

(* Specifications: *)
Lemma size_induction_dep L (X : L -> Type) (f : forall l, X l -> nat) (p : forall l, X l -> Type) : (forall l x, (forall l' y, f l' y < f l x -> p l' y) -> p l x) -> forall l x, p l x.