proposition: Lemma mulmx_adjr : forall n (A : 'M_n), A *m adjugate A === (\det A)%:M.
proof: Proof. rewrite/scalar_mx=> n A i1 i2; case Di: (i1 == i2). rewrite -> (eqP Di), (expand_det_row _ i2)=> //=. by apply eq_bigr => j _; apply rmul_morph; reflexivity. pose B := \matrix_(i, j) (if i == i2 then A i1 j else A i j). have EBi12: pointwise_relation 'I_n req (B i1) (B i2). by rewrite /B Di eq_refl=>j; reflexivity. rewrite <- (alternate_determinant (negbT Di) EBi12) at 2. rewrite -> (expand_det_row _ i2); apply eq_bigr => j _. rewrite /B eq_refl; apply rmul_morph; first by reflexivity. rewrite/adjugate/cofactor; apply rmul_morph; first by reflexivity. apply eq_bigr => s _; apply rmul_morph; first by reflexivity. apply eq_bigr => i _; rewrite /mx_row' /mx_col'. by rewrite eq_sym -if_neg neq_lift; reflexivity. Qed.
imports: ssreflect ssrbool ssrfun eqtype ssrnat seq choice fintype finfun bigops ssralg groups perm zmodp morphisms Ring RingClass bigopsClass Setoid Morphisms