This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Multiplying a matrix with its adjunct results in the identity matrix multiplied with the determinant of the matrix. See Proposition 4.16 in Lang p. 518. (Contributed by Stefan O'Rear, 16-Jul-2018)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | madurid.a | |- A = ( N Mat R ) |
|
| madurid.b | |- B = ( Base ` A ) |
||
| madurid.j | |- J = ( N maAdju R ) |
||
| madurid.d | |- D = ( N maDet R ) |
||
| madurid.i | |- .1. = ( 1r ` A ) |
||
| madurid.t | |- .x. = ( .r ` A ) |
||
| madurid.s | |- .xb = ( .s ` A ) |
||
| Assertion | madurid | |- ( ( M e. B /\ R e. CRing ) -> ( M .x. ( J ` M ) ) = ( ( D ` M ) .xb .1. ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | madurid.a | |- A = ( N Mat R ) |
|
| 2 | madurid.b | |- B = ( Base ` A ) |
|
| 3 | madurid.j | |- J = ( N maAdju R ) |
|
| 4 | madurid.d | |- D = ( N maDet R ) |
|
| 5 | madurid.i | |- .1. = ( 1r ` A ) |
|
| 6 | madurid.t | |- .x. = ( .r ` A ) |
|
| 7 | madurid.s | |- .xb = ( .s ` A ) |
|
| 8 | eqid | |- ( R maMul <. N , N , N >. ) = ( R maMul <. N , N , N >. ) |
|
| 9 | eqid | |- ( Base ` R ) = ( Base ` R ) |
|
| 10 | eqid | |- ( .r ` R ) = ( .r ` R ) |
|
| 11 | simpr | |- ( ( M e. B /\ R e. CRing ) -> R e. CRing ) |
|
| 12 | 1 2 | matrcl | |- ( M e. B -> ( N e. Fin /\ R e. _V ) ) |
| 13 | 12 | simpld | |- ( M e. B -> N e. Fin ) |
| 14 | 13 | adantr | |- ( ( M e. B /\ R e. CRing ) -> N e. Fin ) |
| 15 | 1 9 2 | matbas2i | |- ( M e. B -> M e. ( ( Base ` R ) ^m ( N X. N ) ) ) |
| 16 | 15 | adantr | |- ( ( M e. B /\ R e. CRing ) -> M e. ( ( Base ` R ) ^m ( N X. N ) ) ) |
| 17 | 1 3 2 | maduf | |- ( R e. CRing -> J : B --> B ) |
| 18 | 17 | adantl | |- ( ( M e. B /\ R e. CRing ) -> J : B --> B ) |
| 19 | simpl | |- ( ( M e. B /\ R e. CRing ) -> M e. B ) |
|
| 20 | 18 19 | ffvelcdmd | |- ( ( M e. B /\ R e. CRing ) -> ( J ` M ) e. B ) |
| 21 | 1 9 2 | matbas2i | |- ( ( J ` M ) e. B -> ( J ` M ) e. ( ( Base ` R ) ^m ( N X. N ) ) ) |
| 22 | 20 21 | syl | |- ( ( M e. B /\ R e. CRing ) -> ( J ` M ) e. ( ( Base ` R ) ^m ( N X. N ) ) ) |
| 23 | 8 9 10 11 14 14 14 16 22 | mamuval | |- ( ( M e. B /\ R e. CRing ) -> ( M ( R maMul <. N , N , N >. ) ( J ` M ) ) = ( a e. N , b e. N |-> ( R gsum ( c e. N |-> ( ( a M c ) ( .r ` R ) ( c ( J ` M ) b ) ) ) ) ) ) |
| 24 | 1 8 | matmulr | |- ( ( N e. Fin /\ R e. CRing ) -> ( R maMul <. N , N , N >. ) = ( .r ` A ) ) |
| 25 | 13 24 | sylan | |- ( ( M e. B /\ R e. CRing ) -> ( R maMul <. N , N , N >. ) = ( .r ` A ) ) |
| 26 | 25 6 | eqtr4di | |- ( ( M e. B /\ R e. CRing ) -> ( R maMul <. N , N , N >. ) = .x. ) |
| 27 | 26 | oveqd | |- ( ( M e. B /\ R e. CRing ) -> ( M ( R maMul <. N , N , N >. ) ( J ` M ) ) = ( M .x. ( J ` M ) ) ) |
| 28 | simp1l | |- ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) -> M e. B ) |
|
| 29 | simp1r | |- ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) -> R e. CRing ) |
|
| 30 | elmapi | |- ( M e. ( ( Base ` R ) ^m ( N X. N ) ) -> M : ( N X. N ) --> ( Base ` R ) ) |
|
| 31 | 16 30 | syl | |- ( ( M e. B /\ R e. CRing ) -> M : ( N X. N ) --> ( Base ` R ) ) |
| 32 | 31 | 3ad2ant1 | |- ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) -> M : ( N X. N ) --> ( Base ` R ) ) |
| 33 | 32 | adantr | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ c e. N ) -> M : ( N X. N ) --> ( Base ` R ) ) |
| 34 | simpl2 | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ c e. N ) -> a e. N ) |
|
| 35 | simpr | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ c e. N ) -> c e. N ) |
|
| 36 | 33 34 35 | fovcdmd | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ c e. N ) -> ( a M c ) e. ( Base ` R ) ) |
| 37 | simp3 | |- ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) -> b e. N ) |
|
| 38 | 1 3 2 4 10 9 28 29 36 37 | madugsum | |- ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) -> ( R gsum ( c e. N |-> ( ( a M c ) ( .r ` R ) ( c ( J ` M ) b ) ) ) ) = ( D ` ( d e. N , c e. N |-> if ( d = b , ( a M c ) , ( d M c ) ) ) ) ) |
| 39 | iftrue | |- ( a = b -> if ( a = b , ( D ` M ) , ( 0g ` R ) ) = ( D ` M ) ) |
|
| 40 | 39 | adantl | |- ( ( ( M e. B /\ R e. CRing ) /\ a = b ) -> if ( a = b , ( D ` M ) , ( 0g ` R ) ) = ( D ` M ) ) |
| 41 | 31 | ffnd | |- ( ( M e. B /\ R e. CRing ) -> M Fn ( N X. N ) ) |
| 42 | fnov | |- ( M Fn ( N X. N ) <-> M = ( d e. N , c e. N |-> ( d M c ) ) ) |
|
| 43 | 41 42 | sylib | |- ( ( M e. B /\ R e. CRing ) -> M = ( d e. N , c e. N |-> ( d M c ) ) ) |
| 44 | 43 | adantr | |- ( ( ( M e. B /\ R e. CRing ) /\ a = b ) -> M = ( d e. N , c e. N |-> ( d M c ) ) ) |
| 45 | equtr2 | |- ( ( a = b /\ d = b ) -> a = d ) |
|
| 46 | 45 | oveq1d | |- ( ( a = b /\ d = b ) -> ( a M c ) = ( d M c ) ) |
| 47 | 46 | ifeq1da | |- ( a = b -> if ( d = b , ( a M c ) , ( d M c ) ) = if ( d = b , ( d M c ) , ( d M c ) ) ) |
| 48 | ifid | |- if ( d = b , ( d M c ) , ( d M c ) ) = ( d M c ) |
|
| 49 | 47 48 | eqtrdi | |- ( a = b -> if ( d = b , ( a M c ) , ( d M c ) ) = ( d M c ) ) |
| 50 | 49 | adantl | |- ( ( ( M e. B /\ R e. CRing ) /\ a = b ) -> if ( d = b , ( a M c ) , ( d M c ) ) = ( d M c ) ) |
| 51 | 50 | mpoeq3dv | |- ( ( ( M e. B /\ R e. CRing ) /\ a = b ) -> ( d e. N , c e. N |-> if ( d = b , ( a M c ) , ( d M c ) ) ) = ( d e. N , c e. N |-> ( d M c ) ) ) |
| 52 | 44 51 | eqtr4d | |- ( ( ( M e. B /\ R e. CRing ) /\ a = b ) -> M = ( d e. N , c e. N |-> if ( d = b , ( a M c ) , ( d M c ) ) ) ) |
| 53 | 52 | fveq2d | |- ( ( ( M e. B /\ R e. CRing ) /\ a = b ) -> ( D ` M ) = ( D ` ( d e. N , c e. N |-> if ( d = b , ( a M c ) , ( d M c ) ) ) ) ) |
| 54 | 40 53 | eqtr2d | |- ( ( ( M e. B /\ R e. CRing ) /\ a = b ) -> ( D ` ( d e. N , c e. N |-> if ( d = b , ( a M c ) , ( d M c ) ) ) ) = if ( a = b , ( D ` M ) , ( 0g ` R ) ) ) |
| 55 | 54 | 3ad2antl1 | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ a = b ) -> ( D ` ( d e. N , c e. N |-> if ( d = b , ( a M c ) , ( d M c ) ) ) ) = if ( a = b , ( D ` M ) , ( 0g ` R ) ) ) |
| 56 | eqid | |- ( 0g ` R ) = ( 0g ` R ) |
|
| 57 | simpl1r | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) -> R e. CRing ) |
|
| 58 | 14 | 3ad2ant1 | |- ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) -> N e. Fin ) |
| 59 | 58 | adantr | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) -> N e. Fin ) |
| 60 | 32 | ad2antrr | |- ( ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) /\ c e. N ) -> M : ( N X. N ) --> ( Base ` R ) ) |
| 61 | simpll2 | |- ( ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) /\ c e. N ) -> a e. N ) |
|
| 62 | simpr | |- ( ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) /\ c e. N ) -> c e. N ) |
|
| 63 | 60 61 62 | fovcdmd | |- ( ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) /\ c e. N ) -> ( a M c ) e. ( Base ` R ) ) |
| 64 | 32 | adantr | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) -> M : ( N X. N ) --> ( Base ` R ) ) |
| 65 | 64 | fovcdmda | |- ( ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) /\ ( d e. N /\ c e. N ) ) -> ( d M c ) e. ( Base ` R ) ) |
| 66 | 65 | 3impb | |- ( ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) /\ d e. N /\ c e. N ) -> ( d M c ) e. ( Base ` R ) ) |
| 67 | simpl3 | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) -> b e. N ) |
|
| 68 | simpl2 | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) -> a e. N ) |
|
| 69 | neqne | |- ( -. a = b -> a =/= b ) |
|
| 70 | 69 | necomd | |- ( -. a = b -> b =/= a ) |
| 71 | 70 | adantl | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) -> b =/= a ) |
| 72 | 4 9 56 57 59 63 66 67 68 71 | mdetralt2 | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) -> ( D ` ( d e. N , c e. N |-> if ( d = b , ( a M c ) , if ( d = a , ( a M c ) , ( d M c ) ) ) ) ) = ( 0g ` R ) ) |
| 73 | ifid | |- if ( d = a , ( d M c ) , ( d M c ) ) = ( d M c ) |
|
| 74 | oveq1 | |- ( d = a -> ( d M c ) = ( a M c ) ) |
|
| 75 | 74 | adantl | |- ( ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) /\ d = a ) -> ( d M c ) = ( a M c ) ) |
| 76 | 75 | ifeq1da | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) -> if ( d = a , ( d M c ) , ( d M c ) ) = if ( d = a , ( a M c ) , ( d M c ) ) ) |
| 77 | 73 76 | eqtr3id | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) -> ( d M c ) = if ( d = a , ( a M c ) , ( d M c ) ) ) |
| 78 | 77 | ifeq2d | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) -> if ( d = b , ( a M c ) , ( d M c ) ) = if ( d = b , ( a M c ) , if ( d = a , ( a M c ) , ( d M c ) ) ) ) |
| 79 | 78 | mpoeq3dv | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) -> ( d e. N , c e. N |-> if ( d = b , ( a M c ) , ( d M c ) ) ) = ( d e. N , c e. N |-> if ( d = b , ( a M c ) , if ( d = a , ( a M c ) , ( d M c ) ) ) ) ) |
| 80 | 79 | fveq2d | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) -> ( D ` ( d e. N , c e. N |-> if ( d = b , ( a M c ) , ( d M c ) ) ) ) = ( D ` ( d e. N , c e. N |-> if ( d = b , ( a M c ) , if ( d = a , ( a M c ) , ( d M c ) ) ) ) ) ) |
| 81 | iffalse | |- ( -. a = b -> if ( a = b , ( D ` M ) , ( 0g ` R ) ) = ( 0g ` R ) ) |
|
| 82 | 81 | adantl | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) -> if ( a = b , ( D ` M ) , ( 0g ` R ) ) = ( 0g ` R ) ) |
| 83 | 72 80 82 | 3eqtr4d | |- ( ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) /\ -. a = b ) -> ( D ` ( d e. N , c e. N |-> if ( d = b , ( a M c ) , ( d M c ) ) ) ) = if ( a = b , ( D ` M ) , ( 0g ` R ) ) ) |
| 84 | 55 83 | pm2.61dan | |- ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) -> ( D ` ( d e. N , c e. N |-> if ( d = b , ( a M c ) , ( d M c ) ) ) ) = if ( a = b , ( D ` M ) , ( 0g ` R ) ) ) |
| 85 | 38 84 | eqtrd | |- ( ( ( M e. B /\ R e. CRing ) /\ a e. N /\ b e. N ) -> ( R gsum ( c e. N |-> ( ( a M c ) ( .r ` R ) ( c ( J ` M ) b ) ) ) ) = if ( a = b , ( D ` M ) , ( 0g ` R ) ) ) |
| 86 | 85 | mpoeq3dva | |- ( ( M e. B /\ R e. CRing ) -> ( a e. N , b e. N |-> ( R gsum ( c e. N |-> ( ( a M c ) ( .r ` R ) ( c ( J ` M ) b ) ) ) ) ) = ( a e. N , b e. N |-> if ( a = b , ( D ` M ) , ( 0g ` R ) ) ) ) |
| 87 | 5 | oveq2i | |- ( ( D ` M ) .xb .1. ) = ( ( D ` M ) .xb ( 1r ` A ) ) |
| 88 | crngring | |- ( R e. CRing -> R e. Ring ) |
|
| 89 | 88 | adantl | |- ( ( M e. B /\ R e. CRing ) -> R e. Ring ) |
| 90 | 4 1 2 9 | mdetf | |- ( R e. CRing -> D : B --> ( Base ` R ) ) |
| 91 | 90 | adantl | |- ( ( M e. B /\ R e. CRing ) -> D : B --> ( Base ` R ) ) |
| 92 | 91 19 | ffvelcdmd | |- ( ( M e. B /\ R e. CRing ) -> ( D ` M ) e. ( Base ` R ) ) |
| 93 | 1 9 7 56 | matsc | |- ( ( N e. Fin /\ R e. Ring /\ ( D ` M ) e. ( Base ` R ) ) -> ( ( D ` M ) .xb ( 1r ` A ) ) = ( a e. N , b e. N |-> if ( a = b , ( D ` M ) , ( 0g ` R ) ) ) ) |
| 94 | 14 89 92 93 | syl3anc | |- ( ( M e. B /\ R e. CRing ) -> ( ( D ` M ) .xb ( 1r ` A ) ) = ( a e. N , b e. N |-> if ( a = b , ( D ` M ) , ( 0g ` R ) ) ) ) |
| 95 | 87 94 | eqtrid | |- ( ( M e. B /\ R e. CRing ) -> ( ( D ` M ) .xb .1. ) = ( a e. N , b e. N |-> if ( a = b , ( D ` M ) , ( 0g ` R ) ) ) ) |
| 96 | 86 95 | eqtr4d | |- ( ( M e. B /\ R e. CRing ) -> ( a e. N , b e. N |-> ( R gsum ( c e. N |-> ( ( a M c ) ( .r ` R ) ( c ( J ` M ) b ) ) ) ) ) = ( ( D ` M ) .xb .1. ) ) |
| 97 | 23 27 96 | 3eqtr3d | |- ( ( M e. B /\ R e. CRing ) -> ( M .x. ( J ` M ) ) = ( ( D ` M ) .xb .1. ) ) |