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.

Theorem multA_dist_r :
forall a b c : A, eqA (plusA (multA a c) (multA b c)) (multA (plusA a b) c).