| Step | Hyp | Ref | Expression | 
						
							| 1 |  | zlmodzxz.z |  |-  Z = ( ZZring freeLMod { 0 , 1 } ) | 
						
							| 2 |  | zlmodzxzadd.p |  |-  .+ = ( +g ` Z ) | 
						
							| 3 |  | eqid |  |-  ( Base ` Z ) = ( Base ` Z ) | 
						
							| 4 |  | zringring |  |-  ZZring e. Ring | 
						
							| 5 | 4 | a1i |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> ZZring e. Ring ) | 
						
							| 6 |  | prex |  |-  { 0 , 1 } e. _V | 
						
							| 7 | 6 | a1i |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> { 0 , 1 } e. _V ) | 
						
							| 8 |  | simpl |  |-  ( ( A e. ZZ /\ B e. ZZ ) -> A e. ZZ ) | 
						
							| 9 |  | simpl |  |-  ( ( C e. ZZ /\ D e. ZZ ) -> C e. ZZ ) | 
						
							| 10 | 1 | zlmodzxzel |  |-  ( ( A e. ZZ /\ C e. ZZ ) -> { <. 0 , A >. , <. 1 , C >. } e. ( Base ` Z ) ) | 
						
							| 11 | 8 9 10 | syl2an |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> { <. 0 , A >. , <. 1 , C >. } e. ( Base ` Z ) ) | 
						
							| 12 |  | simpr |  |-  ( ( A e. ZZ /\ B e. ZZ ) -> B e. ZZ ) | 
						
							| 13 |  | simpr |  |-  ( ( C e. ZZ /\ D e. ZZ ) -> D e. ZZ ) | 
						
							| 14 | 1 | zlmodzxzel |  |-  ( ( B e. ZZ /\ D e. ZZ ) -> { <. 0 , B >. , <. 1 , D >. } e. ( Base ` Z ) ) | 
						
							| 15 | 12 13 14 | syl2an |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> { <. 0 , B >. , <. 1 , D >. } e. ( Base ` Z ) ) | 
						
							| 16 |  | eqid |  |-  ( +g ` ZZring ) = ( +g ` ZZring ) | 
						
							| 17 | 1 3 5 7 11 15 16 2 | frlmplusgval |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> ( { <. 0 , A >. , <. 1 , C >. } .+ { <. 0 , B >. , <. 1 , D >. } ) = ( { <. 0 , A >. , <. 1 , C >. } oF ( +g ` ZZring ) { <. 0 , B >. , <. 1 , D >. } ) ) | 
						
							| 18 |  | c0ex |  |-  0 e. _V | 
						
							| 19 |  | 1ex |  |-  1 e. _V | 
						
							| 20 | 18 19 | pm3.2i |  |-  ( 0 e. _V /\ 1 e. _V ) | 
						
							| 21 | 20 | a1i |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> ( 0 e. _V /\ 1 e. _V ) ) | 
						
							| 22 | 8 9 | anim12i |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> ( A e. ZZ /\ C e. ZZ ) ) | 
						
							| 23 |  | 0ne1 |  |-  0 =/= 1 | 
						
							| 24 | 23 | a1i |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> 0 =/= 1 ) | 
						
							| 25 |  | fnprg |  |-  ( ( ( 0 e. _V /\ 1 e. _V ) /\ ( A e. ZZ /\ C e. ZZ ) /\ 0 =/= 1 ) -> { <. 0 , A >. , <. 1 , C >. } Fn { 0 , 1 } ) | 
						
							| 26 | 21 22 24 25 | syl3anc |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> { <. 0 , A >. , <. 1 , C >. } Fn { 0 , 1 } ) | 
						
							| 27 | 12 13 | anim12i |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> ( B e. ZZ /\ D e. ZZ ) ) | 
						
							| 28 |  | fnprg |  |-  ( ( ( 0 e. _V /\ 1 e. _V ) /\ ( B e. ZZ /\ D e. ZZ ) /\ 0 =/= 1 ) -> { <. 0 , B >. , <. 1 , D >. } Fn { 0 , 1 } ) | 
						
							| 29 | 21 27 24 28 | syl3anc |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> { <. 0 , B >. , <. 1 , D >. } Fn { 0 , 1 } ) | 
						
							| 30 | 7 26 29 | offvalfv |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> ( { <. 0 , A >. , <. 1 , C >. } oF ( +g ` ZZring ) { <. 0 , B >. , <. 1 , D >. } ) = ( x e. { 0 , 1 } |-> ( ( { <. 0 , A >. , <. 1 , C >. } ` x ) ( +g ` ZZring ) ( { <. 0 , B >. , <. 1 , D >. } ` x ) ) ) ) | 
						
							| 31 | 18 | a1i |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> 0 e. _V ) | 
						
							| 32 | 19 | a1i |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> 1 e. _V ) | 
						
							| 33 |  | ovexd |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> ( A ( +g ` ZZring ) B ) e. _V ) | 
						
							| 34 |  | ovexd |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> ( C ( +g ` ZZring ) D ) e. _V ) | 
						
							| 35 |  | fveq2 |  |-  ( x = 0 -> ( { <. 0 , A >. , <. 1 , C >. } ` x ) = ( { <. 0 , A >. , <. 1 , C >. } ` 0 ) ) | 
						
							| 36 |  | fveq2 |  |-  ( x = 0 -> ( { <. 0 , B >. , <. 1 , D >. } ` x ) = ( { <. 0 , B >. , <. 1 , D >. } ` 0 ) ) | 
						
							| 37 | 35 36 | oveq12d |  |-  ( x = 0 -> ( ( { <. 0 , A >. , <. 1 , C >. } ` x ) ( +g ` ZZring ) ( { <. 0 , B >. , <. 1 , D >. } ` x ) ) = ( ( { <. 0 , A >. , <. 1 , C >. } ` 0 ) ( +g ` ZZring ) ( { <. 0 , B >. , <. 1 , D >. } ` 0 ) ) ) | 
						
							| 38 | 8 | adantr |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> A e. ZZ ) | 
						
							| 39 |  | fvpr1g |  |-  ( ( 0 e. _V /\ A e. ZZ /\ 0 =/= 1 ) -> ( { <. 0 , A >. , <. 1 , C >. } ` 0 ) = A ) | 
						
							| 40 | 31 38 24 39 | syl3anc |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> ( { <. 0 , A >. , <. 1 , C >. } ` 0 ) = A ) | 
						
							| 41 | 12 | adantr |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> B e. ZZ ) | 
						
							| 42 |  | fvpr1g |  |-  ( ( 0 e. _V /\ B e. ZZ /\ 0 =/= 1 ) -> ( { <. 0 , B >. , <. 1 , D >. } ` 0 ) = B ) | 
						
							| 43 | 31 41 24 42 | syl3anc |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> ( { <. 0 , B >. , <. 1 , D >. } ` 0 ) = B ) | 
						
							| 44 | 40 43 | oveq12d |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> ( ( { <. 0 , A >. , <. 1 , C >. } ` 0 ) ( +g ` ZZring ) ( { <. 0 , B >. , <. 1 , D >. } ` 0 ) ) = ( A ( +g ` ZZring ) B ) ) | 
						
							| 45 | 37 44 | sylan9eqr |  |-  ( ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) /\ x = 0 ) -> ( ( { <. 0 , A >. , <. 1 , C >. } ` x ) ( +g ` ZZring ) ( { <. 0 , B >. , <. 1 , D >. } ` x ) ) = ( A ( +g ` ZZring ) B ) ) | 
						
							| 46 |  | fveq2 |  |-  ( x = 1 -> ( { <. 0 , A >. , <. 1 , C >. } ` x ) = ( { <. 0 , A >. , <. 1 , C >. } ` 1 ) ) | 
						
							| 47 |  | fveq2 |  |-  ( x = 1 -> ( { <. 0 , B >. , <. 1 , D >. } ` x ) = ( { <. 0 , B >. , <. 1 , D >. } ` 1 ) ) | 
						
							| 48 | 46 47 | oveq12d |  |-  ( x = 1 -> ( ( { <. 0 , A >. , <. 1 , C >. } ` x ) ( +g ` ZZring ) ( { <. 0 , B >. , <. 1 , D >. } ` x ) ) = ( ( { <. 0 , A >. , <. 1 , C >. } ` 1 ) ( +g ` ZZring ) ( { <. 0 , B >. , <. 1 , D >. } ` 1 ) ) ) | 
						
							| 49 | 9 | adantl |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> C e. ZZ ) | 
						
							| 50 |  | fvpr2g |  |-  ( ( 1 e. _V /\ C e. ZZ /\ 0 =/= 1 ) -> ( { <. 0 , A >. , <. 1 , C >. } ` 1 ) = C ) | 
						
							| 51 | 32 49 24 50 | syl3anc |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> ( { <. 0 , A >. , <. 1 , C >. } ` 1 ) = C ) | 
						
							| 52 | 13 | adantl |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> D e. ZZ ) | 
						
							| 53 |  | fvpr2g |  |-  ( ( 1 e. _V /\ D e. ZZ /\ 0 =/= 1 ) -> ( { <. 0 , B >. , <. 1 , D >. } ` 1 ) = D ) | 
						
							| 54 | 32 52 24 53 | syl3anc |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> ( { <. 0 , B >. , <. 1 , D >. } ` 1 ) = D ) | 
						
							| 55 | 51 54 | oveq12d |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> ( ( { <. 0 , A >. , <. 1 , C >. } ` 1 ) ( +g ` ZZring ) ( { <. 0 , B >. , <. 1 , D >. } ` 1 ) ) = ( C ( +g ` ZZring ) D ) ) | 
						
							| 56 | 48 55 | sylan9eqr |  |-  ( ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) /\ x = 1 ) -> ( ( { <. 0 , A >. , <. 1 , C >. } ` x ) ( +g ` ZZring ) ( { <. 0 , B >. , <. 1 , D >. } ` x ) ) = ( C ( +g ` ZZring ) D ) ) | 
						
							| 57 | 31 32 33 34 45 56 | fmptpr |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> { <. 0 , ( A ( +g ` ZZring ) B ) >. , <. 1 , ( C ( +g ` ZZring ) D ) >. } = ( x e. { 0 , 1 } |-> ( ( { <. 0 , A >. , <. 1 , C >. } ` x ) ( +g ` ZZring ) ( { <. 0 , B >. , <. 1 , D >. } ` x ) ) ) ) | 
						
							| 58 |  | zringplusg |  |-  + = ( +g ` ZZring ) | 
						
							| 59 | 58 | eqcomi |  |-  ( +g ` ZZring ) = + | 
						
							| 60 | 59 | oveqi |  |-  ( A ( +g ` ZZring ) B ) = ( A + B ) | 
						
							| 61 | 60 | opeq2i |  |-  <. 0 , ( A ( +g ` ZZring ) B ) >. = <. 0 , ( A + B ) >. | 
						
							| 62 | 59 | oveqi |  |-  ( C ( +g ` ZZring ) D ) = ( C + D ) | 
						
							| 63 | 62 | opeq2i |  |-  <. 1 , ( C ( +g ` ZZring ) D ) >. = <. 1 , ( C + D ) >. | 
						
							| 64 | 61 63 | preq12i |  |-  { <. 0 , ( A ( +g ` ZZring ) B ) >. , <. 1 , ( C ( +g ` ZZring ) D ) >. } = { <. 0 , ( A + B ) >. , <. 1 , ( C + D ) >. } | 
						
							| 65 | 57 64 | eqtr3di |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> ( x e. { 0 , 1 } |-> ( ( { <. 0 , A >. , <. 1 , C >. } ` x ) ( +g ` ZZring ) ( { <. 0 , B >. , <. 1 , D >. } ` x ) ) ) = { <. 0 , ( A + B ) >. , <. 1 , ( C + D ) >. } ) | 
						
							| 66 | 17 30 65 | 3eqtrd |  |-  ( ( ( A e. ZZ /\ B e. ZZ ) /\ ( C e. ZZ /\ D e. ZZ ) ) -> ( { <. 0 , A >. , <. 1 , C >. } .+ { <. 0 , B >. , <. 1 , D >. } ) = { <. 0 , ( A + B ) >. , <. 1 , ( C + D ) >. } ) |