Fixpoint leftTrans_makeTrans_acc x y (l : leftTrans x y) : makeTrans x y :=
match l with
| LTFin pf => TStep pf
| LTStep _ pf pfL =>
TTrans (TStep pf) (leftTrans_makeTrans_acc pfL)
end.
Fixpoint leftTrans_trans x y (l : leftTrans x y) : forall z (r : leftTrans y z), leftTrans x z :=
match l with
| LTFin pf => fun _ pfL => LTStep pf pfL
| LTStep _ pf pfL => fun _ pfR => LTStep pf (leftTrans_trans pfL pfR)
end.

(* Specifications: *)
Theorem makeTrans_leftTrans : forall s s',
makeTrans s s' <-> leftTrans s s'.
Theorem makeTrans_rightTrans : forall s s',
makeTrans s s' <-> rightTrans s s'.