unfold equal in |- *.
split.
unfold inclusion in |- *.
unfold transpose in |- *.
intros M N.
unfold reduce in |- *.
intro.
elim H.
split.
trivial.
generalize H1.
case M; try tauto; case N; try tauto.
fold (transpose h) in |- *.
intros.
case H2.
intro.
left.
red in |- *.
intro.
apply H3.
generalize (synthesis_transpose_transpose_synthesis h).
unfold equal in |- *.
unfold inclusion in |- *.
intros.
elim H5.
intros.
apply H7.
unfold transpose in |- *.
trivial.
right.
red in |- *; intro.
apply H3.
generalize (synthesis_transpose_transpose_synthesis h).
unfold equal in |- *; unfold inclusion in |- *.
intro.
elim H5.
intros.
apply H7.
unfold transpose in |- *; trivial.
intros.
case H2.
left.
red in |- *; intro.
generalize (synthesis_transpose_transpose_synthesis h).
unfold equal in |- *; unfold inclusion in |- *.
intro.
elim H5; intros.
apply H3.
apply H7.
unfold transpose in |- *; trivial.
intro.
right.
red in |- *; intro.
apply H3.
generalize (synthesis_transpose_transpose_synthesis h).
unfold equal in |- *; unfold inclusion in |- *.
intro.
elim H5; intros.
apply H7.
unfold transpose in |- *; trivial.
intros.
case H2.
left.
red in |- *; intro.
apply H3.
rewrite H4; trivial.
right.
red in |- *; intro.
apply H3.
generalize (synthesis_transpose_transpose_synthesis h).
unfold equal in |- *; unfold inclusion in |- *.
intro.
elim H5.
intros.
apply H7.
unfold transpose in |- *; trivial.
unfold inclusion in |- *.
intros M N.
unfold transpose in |- *.
unfold reduce in |- *.
split; try tauto.
elim H.
intro.
generalize (synthesis_transpose_transpose_synthesis h).
unfold equal in |- *.
unfold inclusion in |- *.
intro.
elim H1.
intro.
intro.
unfold transpose in H2.
case N; try tauto; case M; try tauto.
intros.
case H4.
left.
red in |- *; intro.
apply H5.
apply H2; trivial.
right.
red in |- *; intro.
apply H5.
auto.
intros.
case H4.
left.
red in |- *; intro.
apply H5; auto.
right.
red in |- *; intro.
apply H5.
auto.
intros.
case H4.
left; auto.
right.
red in |- *; intro.
apply H5.
auto.
Qed.

(* Specifications: *)
Lemma analysis_transpose_transpose_analysis :
forall h : hedge, equal (analysis (transpose h)) (transpose (analysis h)).