(* invariance du résultat de pl_produit lorsqu'on augmente la quantité d'essence *)

Fixpoint pl_prof (pl : prec_list) : nat :=
  match pl with
  | prec_empty => 0
  | prec_cons a la ls => S (max (pl_prof la) (pl_prof ls))
  end.

Lemma indprinciple_2 : forall P0 P1 : prec_list -> prec_list -> Prop, (forall p : prec_list, P0 p prec_empty) -> (forall p : prec_list, P1 p prec_empty) -> (forall p : prec_list, P1 prec_empty p) -> (forall (a : ad) (la ls p : prec_list), P0 p ls -> P1 p la -> P0 p (prec_cons a la ls)) -> (forall (a : ad) (la ls p : prec_list), P0 la p -> P1 ls p -> P1 (prec_cons a la ls) p) -> forall (n : nat) (p p' : prec_list), pl_prof p <= n -> pl_prof p' <= n -> P0 p p' /\ P1 p p'.