| Step | Hyp | Ref | Expression | 
						
							| 1 |  | 0prjspnrel.e |  |-  .~ = { <. x , y >. | ( ( x e. B /\ y e. B ) /\ E. l e. S x = ( l .x. y ) ) } | 
						
							| 2 |  | 0prjspnrel.b |  |-  B = ( ( Base ` W ) \ { ( 0g ` W ) } ) | 
						
							| 3 |  | 0prjspnrel.x |  |-  .x. = ( .s ` W ) | 
						
							| 4 |  | 0prjspnrel.s |  |-  S = ( Base ` K ) | 
						
							| 5 |  | 0prjspnrel.w |  |-  W = ( K freeLMod ( 0 ... 0 ) ) | 
						
							| 6 |  | 0prjspnrel.1 |  |-  .1. = ( ( K unitVec ( 0 ... 0 ) ) ` 0 ) | 
						
							| 7 |  | simpr |  |-  ( ( K e. DivRing /\ X e. B ) -> X e. B ) | 
						
							| 8 | 2 5 6 | 0prjspnlem |  |-  ( K e. DivRing -> .1. e. B ) | 
						
							| 9 | 8 | adantr |  |-  ( ( K e. DivRing /\ X e. B ) -> .1. e. B ) | 
						
							| 10 |  | sneq |  |-  ( n = ( X ` 0 ) -> { n } = { ( X ` 0 ) } ) | 
						
							| 11 | 10 | xpeq2d |  |-  ( n = ( X ` 0 ) -> ( ( 0 ... 0 ) X. { n } ) = ( ( 0 ... 0 ) X. { ( X ` 0 ) } ) ) | 
						
							| 12 | 11 | eqeq2d |  |-  ( n = ( X ` 0 ) -> ( X = ( ( 0 ... 0 ) X. { n } ) <-> X = ( ( 0 ... 0 ) X. { ( X ` 0 ) } ) ) ) | 
						
							| 13 |  | ovexd |  |-  ( ( K e. DivRing /\ X e. B ) -> ( 0 ... 0 ) e. _V ) | 
						
							| 14 |  | difss |  |-  ( ( Base ` W ) \ { ( 0g ` W ) } ) C_ ( Base ` W ) | 
						
							| 15 | 2 14 | eqsstri |  |-  B C_ ( Base ` W ) | 
						
							| 16 | 15 | sseli |  |-  ( X e. B -> X e. ( Base ` W ) ) | 
						
							| 17 | 16 | adantl |  |-  ( ( K e. DivRing /\ X e. B ) -> X e. ( Base ` W ) ) | 
						
							| 18 |  | eqid |  |-  ( Base ` K ) = ( Base ` K ) | 
						
							| 19 |  | eqid |  |-  ( Base ` W ) = ( Base ` W ) | 
						
							| 20 | 5 18 19 | frlmbasf |  |-  ( ( ( 0 ... 0 ) e. _V /\ X e. ( Base ` W ) ) -> X : ( 0 ... 0 ) --> ( Base ` K ) ) | 
						
							| 21 | 13 17 20 | syl2anc |  |-  ( ( K e. DivRing /\ X e. B ) -> X : ( 0 ... 0 ) --> ( Base ` K ) ) | 
						
							| 22 |  | c0ex |  |-  0 e. _V | 
						
							| 23 | 22 | snid |  |-  0 e. { 0 } | 
						
							| 24 |  | fz0sn |  |-  ( 0 ... 0 ) = { 0 } | 
						
							| 25 | 23 24 | eleqtrri |  |-  0 e. ( 0 ... 0 ) | 
						
							| 26 | 25 | a1i |  |-  ( ( K e. DivRing /\ X e. B ) -> 0 e. ( 0 ... 0 ) ) | 
						
							| 27 | 21 26 | ffvelcdmd |  |-  ( ( K e. DivRing /\ X e. B ) -> ( X ` 0 ) e. ( Base ` K ) ) | 
						
							| 28 | 5 18 19 | frlmbasmap |  |-  ( ( ( 0 ... 0 ) e. _V /\ X e. ( Base ` W ) ) -> X e. ( ( Base ` K ) ^m ( 0 ... 0 ) ) ) | 
						
							| 29 | 13 17 28 | syl2anc |  |-  ( ( K e. DivRing /\ X e. B ) -> X e. ( ( Base ` K ) ^m ( 0 ... 0 ) ) ) | 
						
							| 30 |  | fvex |  |-  ( Base ` K ) e. _V | 
						
							| 31 | 24 30 22 | mapsnconst |  |-  ( X e. ( ( Base ` K ) ^m ( 0 ... 0 ) ) -> X = ( ( 0 ... 0 ) X. { ( X ` 0 ) } ) ) | 
						
							| 32 | 29 31 | syl |  |-  ( ( K e. DivRing /\ X e. B ) -> X = ( ( 0 ... 0 ) X. { ( X ` 0 ) } ) ) | 
						
							| 33 | 12 27 32 | rspcedvdw |  |-  ( ( K e. DivRing /\ X e. B ) -> E. n e. ( Base ` K ) X = ( ( 0 ... 0 ) X. { n } ) ) | 
						
							| 34 |  | oveq1 |  |-  ( m = n -> ( m .x. .1. ) = ( n .x. .1. ) ) | 
						
							| 35 | 34 | eqeq2d |  |-  ( m = n -> ( X = ( m .x. .1. ) <-> X = ( n .x. .1. ) ) ) | 
						
							| 36 |  | simprl |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ ( n e. ( Base ` K ) /\ X = ( ( 0 ... 0 ) X. { n } ) ) ) -> n e. ( Base ` K ) ) | 
						
							| 37 | 36 4 | eleqtrrdi |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ ( n e. ( Base ` K ) /\ X = ( ( 0 ... 0 ) X. { n } ) ) ) -> n e. S ) | 
						
							| 38 |  | ovexd |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) -> ( 0 ... 0 ) e. _V ) | 
						
							| 39 |  | simpr |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) -> n e. ( Base ` K ) ) | 
						
							| 40 | 8 | ad2antrr |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) -> .1. e. B ) | 
						
							| 41 | 15 40 | sselid |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) -> .1. e. ( Base ` W ) ) | 
						
							| 42 |  | eqid |  |-  ( .r ` K ) = ( .r ` K ) | 
						
							| 43 | 5 19 18 38 39 41 3 42 | frlmvscafval |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) -> ( n .x. .1. ) = ( ( ( 0 ... 0 ) X. { n } ) oF ( .r ` K ) .1. ) ) | 
						
							| 44 | 5 18 19 | frlmbasf |  |-  ( ( ( 0 ... 0 ) e. _V /\ .1. e. ( Base ` W ) ) -> .1. : ( 0 ... 0 ) --> ( Base ` K ) ) | 
						
							| 45 | 38 41 44 | syl2anc |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) -> .1. : ( 0 ... 0 ) --> ( Base ` K ) ) | 
						
							| 46 |  | drngring |  |-  ( K e. DivRing -> K e. Ring ) | 
						
							| 47 |  | eqid |  |-  ( 1r ` K ) = ( 1r ` K ) | 
						
							| 48 | 18 47 | ringidcl |  |-  ( K e. Ring -> ( 1r ` K ) e. ( Base ` K ) ) | 
						
							| 49 | 46 48 | syl |  |-  ( K e. DivRing -> ( 1r ` K ) e. ( Base ` K ) ) | 
						
							| 50 | 49 | ad2antrr |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) -> ( 1r ` K ) e. ( Base ` K ) ) | 
						
							| 51 | 50 | snssd |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) -> { ( 1r ` K ) } C_ ( Base ` K ) ) | 
						
							| 52 | 6 | a1i |  |-  ( d e. ( 0 ... 0 ) -> .1. = ( ( K unitVec ( 0 ... 0 ) ) ` 0 ) ) | 
						
							| 53 |  | elfz1eq |  |-  ( d e. ( 0 ... 0 ) -> d = 0 ) | 
						
							| 54 | 52 53 | fveq12d |  |-  ( d e. ( 0 ... 0 ) -> ( .1. ` d ) = ( ( ( K unitVec ( 0 ... 0 ) ) ` 0 ) ` 0 ) ) | 
						
							| 55 | 54 | adantl |  |-  ( ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) /\ d e. ( 0 ... 0 ) ) -> ( .1. ` d ) = ( ( ( K unitVec ( 0 ... 0 ) ) ` 0 ) ` 0 ) ) | 
						
							| 56 |  | eqid |  |-  ( K unitVec ( 0 ... 0 ) ) = ( K unitVec ( 0 ... 0 ) ) | 
						
							| 57 |  | simplll |  |-  ( ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) /\ d e. ( 0 ... 0 ) ) -> K e. DivRing ) | 
						
							| 58 |  | ovexd |  |-  ( ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) /\ d e. ( 0 ... 0 ) ) -> ( 0 ... 0 ) e. _V ) | 
						
							| 59 | 25 | a1i |  |-  ( ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) /\ d e. ( 0 ... 0 ) ) -> 0 e. ( 0 ... 0 ) ) | 
						
							| 60 | 56 57 58 59 47 | uvcvv1 |  |-  ( ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) /\ d e. ( 0 ... 0 ) ) -> ( ( ( K unitVec ( 0 ... 0 ) ) ` 0 ) ` 0 ) = ( 1r ` K ) ) | 
						
							| 61 |  | fvex |  |-  ( ( ( K unitVec ( 0 ... 0 ) ) ` 0 ) ` 0 ) e. _V | 
						
							| 62 | 61 | elsn |  |-  ( ( ( ( K unitVec ( 0 ... 0 ) ) ` 0 ) ` 0 ) e. { ( 1r ` K ) } <-> ( ( ( K unitVec ( 0 ... 0 ) ) ` 0 ) ` 0 ) = ( 1r ` K ) ) | 
						
							| 63 | 60 62 | sylibr |  |-  ( ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) /\ d e. ( 0 ... 0 ) ) -> ( ( ( K unitVec ( 0 ... 0 ) ) ` 0 ) ` 0 ) e. { ( 1r ` K ) } ) | 
						
							| 64 | 55 63 | eqeltrd |  |-  ( ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) /\ d e. ( 0 ... 0 ) ) -> ( .1. ` d ) e. { ( 1r ` K ) } ) | 
						
							| 65 | 64 | ralrimiva |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) -> A. d e. ( 0 ... 0 ) ( .1. ` d ) e. { ( 1r ` K ) } ) | 
						
							| 66 |  | fcdmssb |  |-  ( ( { ( 1r ` K ) } C_ ( Base ` K ) /\ A. d e. ( 0 ... 0 ) ( .1. ` d ) e. { ( 1r ` K ) } ) -> ( .1. : ( 0 ... 0 ) --> ( Base ` K ) <-> .1. : ( 0 ... 0 ) --> { ( 1r ` K ) } ) ) | 
						
							| 67 | 51 65 66 | syl2anc |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) -> ( .1. : ( 0 ... 0 ) --> ( Base ` K ) <-> .1. : ( 0 ... 0 ) --> { ( 1r ` K ) } ) ) | 
						
							| 68 | 45 67 | mpbid |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) -> .1. : ( 0 ... 0 ) --> { ( 1r ` K ) } ) | 
						
							| 69 |  | vex |  |-  n e. _V | 
						
							| 70 | 69 | a1i |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) -> n e. _V ) | 
						
							| 71 |  | elsni |  |-  ( c e. { ( 1r ` K ) } -> c = ( 1r ` K ) ) | 
						
							| 72 | 71 | oveq2d |  |-  ( c e. { ( 1r ` K ) } -> ( n ( .r ` K ) c ) = ( n ( .r ` K ) ( 1r ` K ) ) ) | 
						
							| 73 | 46 | ad2antrr |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) -> K e. Ring ) | 
						
							| 74 | 18 42 47 73 39 | ringridmd |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) -> ( n ( .r ` K ) ( 1r ` K ) ) = n ) | 
						
							| 75 | 72 74 | sylan9eqr |  |-  ( ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) /\ c e. { ( 1r ` K ) } ) -> ( n ( .r ` K ) c ) = n ) | 
						
							| 76 | 38 68 70 70 75 | caofid2 |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) -> ( ( ( 0 ... 0 ) X. { n } ) oF ( .r ` K ) .1. ) = ( ( 0 ... 0 ) X. { n } ) ) | 
						
							| 77 | 43 76 | eqtrd |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) -> ( n .x. .1. ) = ( ( 0 ... 0 ) X. { n } ) ) | 
						
							| 78 | 77 | eqeq2d |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) -> ( X = ( n .x. .1. ) <-> X = ( ( 0 ... 0 ) X. { n } ) ) ) | 
						
							| 79 | 78 | biimprd |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ n e. ( Base ` K ) ) -> ( X = ( ( 0 ... 0 ) X. { n } ) -> X = ( n .x. .1. ) ) ) | 
						
							| 80 | 79 | impr |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ ( n e. ( Base ` K ) /\ X = ( ( 0 ... 0 ) X. { n } ) ) ) -> X = ( n .x. .1. ) ) | 
						
							| 81 | 35 37 80 | rspcedvdw |  |-  ( ( ( K e. DivRing /\ X e. B ) /\ ( n e. ( Base ` K ) /\ X = ( ( 0 ... 0 ) X. { n } ) ) ) -> E. m e. S X = ( m .x. .1. ) ) | 
						
							| 82 | 33 81 | rexlimddv |  |-  ( ( K e. DivRing /\ X e. B ) -> E. m e. S X = ( m .x. .1. ) ) | 
						
							| 83 | 1 | prjsprel |  |-  ( X .~ .1. <-> ( ( X e. B /\ .1. e. B ) /\ E. m e. S X = ( m .x. .1. ) ) ) | 
						
							| 84 | 7 9 82 83 | syl21anbrc |  |-  ( ( K e. DivRing /\ X e. B ) -> X .~ .1. ) |