(* OLD Inductive Path_consistent : const -> tm -> tm -> Prop := PC_Const : forall T, Path_consistent T (a_Const T) (a_Const T) | PC_App   : forall T a1 rho a2 b1 b2, erased_tm a2 -> erased_tm b2 -> Path_consistent T a1 b1 -> Path_consistent T (a_App a1 rho a2) (a_App b1 rho b2) | PC_CApp  : forall T a1 b1, Path_consistent T a1 b1 -> Path_consistent T (a_CApp a1 g_Triv) (a_CApp b1 g_Triv). Hint Constructors Path_consistent. *)
Hint Constructors Path_consistent.

(* Specifications: *)
Lemma Path_consistent_Path1 : forall T a b, Path_consistent T a b -> Path T a.
Lemma Path_consistent_Trans : forall T a b c,
Path_consistent T a b -> Path_consistent T b c -> Path_consistent T a c.
Lemma Path_consistent_Sym :
forall T a b, Path_consistent T a b -> Path_consistent T b a.
Lemma Par_Path_consistent :
forall S D a b T, Par S D a b -> Path T a -> erased_tm a -> Path_consistent T a b.
Lemma multipar_Path_consistent :
forall S D a b T, multipar S D a b -> Path T a -> erased_tm a -> Path_consistent T a b.
Lemma Par_Path :
forall S D a b T, Par S D a b -> Path T a -> Path T b.
Lemma multipar_Path : forall S D a b T ,
multipar S D a b -> Path T a -> Path T b.
Lemma Par_Path_consistent_App : forall T G D a1 a2 b1 b2,
Path_consistent T (a_App a1 Rel a2) (a_App b1 Rel b2) ->
Par G D (a_App a1 Rel a2) ( a_App b1 Rel b2) ->
Par G D a1 b1.
Lemma Par_Path_consistent_AppIrrel : forall T G D a1 b1,
Path_consistent T (a_App a1 Irrel a_Bullet) (a_App b1 Irrel a_Bullet) ->
Par G D (a_App a1 Irrel a_Bullet) ( a_App b1 Irrel a_Bullet) ->
Par G D a1 b1.
Lemma Par_Path_consistent_CApp : forall T G D a1 b1,
Path_consistent T (a_CApp a1 g_Triv) (a_CApp b1 g_Triv) ->
Par G D (a_CApp a1 g_Triv) (a_CApp b1 g_Triv) ->
Par G D a1 b1.
Lemma Par_Path_consistent_App2 : forall T G D a1 a2 b1 b2,
Path_consistent T (a_App a1 Rel a2) (a_App b1 Rel b2) ->
Par G D (a_App a1 Rel a2) (a_App b1 Rel b2) ->
Par G D a2 b2.
Lemma multipar_Path_consistent_App : forall G D a1 a2 b1 b2 T,
multipar G D (a_App a1 Rel a2) (a_App b1 Rel b2) ->
Path_consistent T (a_App a1 Rel a2) (a_App b1 Rel b2) ->
multipar G D a1 b1.
Lemma multipar_Path_consistent_AppIrrel : forall G D a1 b1 T,
multipar G D (a_App a1 Irrel a_Bullet) (a_App b1 Irrel a_Bullet) ->
Path_consistent T (a_App a1 Irrel a_Bullet) (a_App b1 Irrel a_Bullet) ->
multipar G D a1 b1.
Lemma multipar_Path_consistent_App2 : forall G D a1 a2 b1 b2 T,
multipar G D (a_App a1 Rel a2) (a_App b1 Rel b2) ->
Path_consistent T (a_App a1 Rel a2) (a_App b1 Rel b2) ->
multipar G D a2 b2.
Lemma multipar_Path_consistent_CApp : forall G D a1 b1 T,
multipar G D (a_CApp a1 g_Triv) (a_CApp b1 g_Triv) ->
Path_consistent T (a_CApp a1 g_Triv) (a_CApp b1 g_Triv) ->
multipar G D a1 b1.