Section mCoef.
Load "hCoefStructure".
Load "mCoefStructure".
Let eqA_trans := eqA_trans _ _ _ _ _ _ _ _ _ cs.
Let eqA_sym := eqA_sym _ _ _ _ _ _ _ _ _ cs.
intros a b H H1; apply eqA_trans with (y := a); auto.
Qed.
intros a b c H'; auto.
Qed.
intros a b c H'; auto.
Qed.
intros a b H'; apply eqA_trans with (y := plusA A0 b); auto.
apply eqA_trans with (y := plusA b A0); auto.
Qed.
intros a b H'; apply eqA_trans with (y := plusA a A0); auto.
Qed.
apply eqA_trans with (y := plusA A0 (invA A0)); auto.
apply eqA_trans with (y := plusA (invA A0) A0); auto.
Qed.
intros a H'; apply eqA_sym; apply eqA_trans with (y := A0); auto.
apply eqA_trans with (y := invA A0); auto.
apply eqA_sym; apply invA0; auto.
Qed.
intros a.
apply eqA_trans with (y := plusA a A0); auto.
apply eqA_trans with (y := plusA A0 a); auto.
apply eqA_trans with (y := plusA (plusA (invA a) (invA (invA a))) a); auto.
apply eqA_trans with (y := plusA (plusA (invA (invA a)) (invA a)) a); auto.
apply eqA_trans with (y := plusA (invA (invA a)) (plusA (invA a) a)); auto.
apply eqA_trans with (y := plusA (invA (invA a)) (plusA a (invA a))); auto.
apply eqA_trans with (y := plusA (invA (invA a)) A0); auto.
Qed.
intros a b c H'; auto.
Qed.
intros a b c H'; auto.
Qed.
intros a b c; apply eqA_trans with (y := plusA (multA c a) (multA c b)); auto.
apply eqA_trans with (y := multA c (plusA a b)); auto.
Qed.
intros a; apply eqA_trans with (y := multA A0 a); auto.
Qed.
intros a; apply eqA_trans with (y := multA A1 a); auto.
Qed.
Hint Resolve multA_A1_r.

Theorem multA_invA_com_l :
forall a b : A, eqA (multA (invA a) b) (invA (multA a b)).