Goal:
    A : Type  B : Type  x : A  l : list A  proj : A → B  size : B → nat
  ============================
   (In x l → size (proj x) < list_size (size ∘ proj) l)


DEBUG:Going to execute:
induction l

Goals:
    A : Type  B : Type  x : A  proj : A → B  size : B → nat
  ============================
   (In x [] → size (proj x) < list_size (λ x : A, size (proj x)) [])

  
  A : Type
  B : Type
  x : A
  a : A
  l : list A
  proj : A → B
  size : B → nat
  IHl : In x l → size (proj x) < list_size (λ x : A, size (proj x)) l
  ============================
   (In x (a :: l)
    → size (proj x) < list_size (λ x : A, size (proj x)) (a :: l))


DEBUG:Going to execute:
cbn => //
DEBUG LTAC Evaluated term: l