(* Strip lemmas *)

Definition strip :=
  forall x y : lambda,
  par_red x y ->
  forall z : lambda,
  par_red1 x z -> exists u : lambda, par_red1 y u /\ par_red z u.

(* Specifications: *)
Lemma strip_lemma_r : confluence lambda par_red1 -> strip.
Lemma strip_lemma_l : strip -> confluence lambda par_red.
Lemma lemma2 : confluence lambda par_red1 -> confluence lambda par_red.
Lemma parallel_moves : confluence lambda par_red1.
Lemma confluence_parallel_reduction : confluence lambda par_red.
Theorem confluence_beta_reduction : confluence lambda red.