tros S D A B H. induction H. auto.
  inversion H; intro K; auto; try inversion K.
Qed.

Lemma multipar_Bullet : forall S D B, multipar S D a_Bullet B -> B = a_Bullet.
Proof.
  intros S D B H. dependent induction H. auto.
  inversion H; auto; try inversion K.
Qed.

(* 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. *)

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 a2 b1 b2,
    erased_tm a2 -> erased_tm b2 ->tros S D A B H. induction H. auto.
  inversion H; intro K; auto; try inversion K.
Qed.

Lemma multipar_Bullet : forall S D B, multipar S D a_Bullet B -> B = a_Bullet.
Proof.
  intros S D B H. dependent induction H. auto.
  inversion H; auto; try inversion K.
Qed.

(* 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. *)

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 a2 b1 b2,
    erased_tm a2 -> erased_tm b2 ->tros S D A B H. induction H. auto.
  inversion H; intro K; auto; try inversion K.
Qed.

Lemma multipar_Bullet : forall S D B, multipar S D a_Bullet B -> B = a_Bullet.
Proof.
  intros S D B H. dependent induction H. auto.
  inversion H; auto; try inversion K.
Qed.

(* 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. *)

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 a2 b1 b2,
    erased_tm a2 -> erased_tm b2 ->tros S D A B H. induction H. auto.
  inversion H; intro K; auto; try inversion K.
Qed.

Lemma multipar_Bullet : forall S D B, multipar S D a_Bullet B -> B = a_Bullet.
Proof.
  intros S D B H. dependent induction H. auto.
  inversion H; auto; try inversion K.
Qed.

(* 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. *)

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 a2 b1 b2,
    erased_tm a2 -> erased_tm b2 ->tros S D A B H. induction H. auto.
  inversion H; intro K; auto; try inversion K.
Qed.

Lemma multipar_Bullet : forall S D B, multipar S D a_Bullet B -> B = a_Bullet.
Proof.
  intros S D B H. dependent induction H. auto.
  inversion H; auto; try inversion K.
Qed.

(* 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. *)

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 a2 b1 b2,
    erased_tm a2 -> erased_tm b2 ->

move: (Par_Path_consistent_App2 h0 H) => h1. eapply mp_step with (b:= b3). auto. eapply IHmultipar; eauto 2. eapply Path_consi