(*  a -->  b -->* c    d - by prior lemma |      |      |    e - by induction. v      v      v *      *      * a2 --> d -->* e  *)

(* Specifications: *)
Lemma multipar_confluence : forall S D a a1, Good S D -> erased_tm a -> multipar S D a a1
-> forall a2, multipar S D a a2 -> exists b, multipar S D a1 b /\ multipar S D a2 b.
Lemma multipar_append : forall S D a b c, multipar S D a b -> multipar S D b c -> multipar S D a c.
(* a   b   c \ / \ / ab  bc \ / d *)
Lemma join_transitive : forall S D a b, Good S D -> joins S D a b -> forall c, joins S D b c -> joins S D a c.
Lemma join_symmetry: forall S D a b, joins S D a b -> joins S D b a.
Definition extends (G G2 : context) := exists G1, G = G1 ++ G2.
Lemma multipar_lc2: forall G D a1 a2, lc_tm a1 -> multipar G D a1 a2 -> lc_tm a2.
induction 2; eauto.