intros.
generalize (irr_le_h_left_consistent_impl_left_consistent_weak g h H H0 H1).
intro.
elim (weak_left_consistent_inj_inv_left_iff_left_consistent g).
intros.
apply H3.
split; trivial.
unfold injective_inv_left in |- *.
intros.
unfold is_left_consistent in H0.
elim H0.
intros.
elim H9.
intros.
elim H11.
intros.
elim H13.
intros.
elim H15.
intros.
unfold le_h in H1.
unfold inclusion in H1.
generalize (H1 M N (SynInc g M N H5)).
intro.
generalize (H1 M' N' (SynInc g M' N' H6)).
intro.
elim H17.
intros.
generalize (inj_inv_left_syn h H10 H16 H12 H14 H21).
unfold injective_inv_left in |- *.
intros.
apply (H22 M N H18 M' N' H19 H7).
Qed.

(** some lemma about transposition and operation on hedges *)
Lemma reduce_transpose_transpose_reduce :
forall h : hedge, equal (reduce (transpose h)) (transpose (reduce h)).