| Step | Hyp | Ref | Expression | 
						
							| 1 |  | crth.1 |  | 
						
							| 2 |  | crth.2 |  | 
						
							| 3 |  | crth.3 |  | 
						
							| 4 |  | crth.4 |  | 
						
							| 5 |  | elfzoelz |  | 
						
							| 6 | 5 1 | eleq2s |  | 
						
							| 7 |  | simpr |  | 
						
							| 8 | 4 | simp1d |  | 
						
							| 9 | 8 | adantr |  | 
						
							| 10 |  | zmodfzo |  | 
						
							| 11 | 7 9 10 | syl2anc |  | 
						
							| 12 | 4 | simp2d |  | 
						
							| 13 | 12 | adantr |  | 
						
							| 14 |  | zmodfzo |  | 
						
							| 15 | 7 13 14 | syl2anc |  | 
						
							| 16 | 11 15 | opelxpd |  | 
						
							| 17 | 16 2 | eleqtrrdi |  | 
						
							| 18 | 6 17 | sylan2 |  | 
						
							| 19 | 18 3 | fmptd |  | 
						
							| 20 |  | oveq1 |  | 
						
							| 21 |  | oveq1 |  | 
						
							| 22 | 20 21 | opeq12d |  | 
						
							| 23 |  | opex |  | 
						
							| 24 | 22 3 23 | fvmpt |  | 
						
							| 25 | 24 | ad2antrl |  | 
						
							| 26 |  | oveq1 |  | 
						
							| 27 |  | oveq1 |  | 
						
							| 28 | 26 27 | opeq12d |  | 
						
							| 29 |  | opex |  | 
						
							| 30 | 28 3 29 | fvmpt |  | 
						
							| 31 | 30 | ad2antll |  | 
						
							| 32 | 25 31 | eqeq12d |  | 
						
							| 33 |  | ovex |  | 
						
							| 34 |  | ovex |  | 
						
							| 35 | 33 34 | opth |  | 
						
							| 36 | 32 35 | bitrdi |  | 
						
							| 37 | 8 | adantr |  | 
						
							| 38 | 37 | nnzd |  | 
						
							| 39 | 12 | adantr |  | 
						
							| 40 | 39 | nnzd |  | 
						
							| 41 |  | simprl |  | 
						
							| 42 | 41 1 | eleqtrdi |  | 
						
							| 43 |  | elfzoelz |  | 
						
							| 44 | 42 43 | syl |  | 
						
							| 45 |  | simprr |  | 
						
							| 46 | 45 1 | eleqtrdi |  | 
						
							| 47 |  | elfzoelz |  | 
						
							| 48 | 46 47 | syl |  | 
						
							| 49 | 44 48 | zsubcld |  | 
						
							| 50 | 4 | simp3d |  | 
						
							| 51 | 50 | adantr |  | 
						
							| 52 |  | coprmdvds2 |  | 
						
							| 53 | 38 40 49 51 52 | syl31anc |  | 
						
							| 54 |  | moddvds |  | 
						
							| 55 | 37 44 48 54 | syl3anc |  | 
						
							| 56 |  | moddvds |  | 
						
							| 57 | 39 44 48 56 | syl3anc |  | 
						
							| 58 | 55 57 | anbi12d |  | 
						
							| 59 | 44 | zred |  | 
						
							| 60 | 37 39 | nnmulcld |  | 
						
							| 61 | 60 | nnrpd |  | 
						
							| 62 |  | elfzole1 |  | 
						
							| 63 | 42 62 | syl |  | 
						
							| 64 |  | elfzolt2 |  | 
						
							| 65 | 42 64 | syl |  | 
						
							| 66 |  | modid |  | 
						
							| 67 | 59 61 63 65 66 | syl22anc |  | 
						
							| 68 | 48 | zred |  | 
						
							| 69 |  | elfzole1 |  | 
						
							| 70 | 46 69 | syl |  | 
						
							| 71 |  | elfzolt2 |  | 
						
							| 72 | 46 71 | syl |  | 
						
							| 73 |  | modid |  | 
						
							| 74 | 68 61 70 72 73 | syl22anc |  | 
						
							| 75 | 67 74 | eqeq12d |  | 
						
							| 76 |  | moddvds |  | 
						
							| 77 | 60 44 48 76 | syl3anc |  | 
						
							| 78 | 75 77 | bitr3d |  | 
						
							| 79 | 53 58 78 | 3imtr4d |  | 
						
							| 80 | 36 79 | sylbid |  | 
						
							| 81 | 80 | ralrimivva |  | 
						
							| 82 |  | dff13 |  | 
						
							| 83 | 19 81 82 | sylanbrc |  | 
						
							| 84 |  | nnnn0 |  | 
						
							| 85 |  | nnnn0 |  | 
						
							| 86 |  | nn0mulcl |  | 
						
							| 87 |  | hashfzo0 |  | 
						
							| 88 | 86 87 | syl |  | 
						
							| 89 |  | fzofi |  | 
						
							| 90 |  | fzofi |  | 
						
							| 91 |  | hashxp |  | 
						
							| 92 | 89 90 91 | mp2an |  | 
						
							| 93 |  | hashfzo0 |  | 
						
							| 94 |  | hashfzo0 |  | 
						
							| 95 | 93 94 | oveqan12d |  | 
						
							| 96 | 92 95 | eqtrid |  | 
						
							| 97 | 88 96 | eqtr4d |  | 
						
							| 98 |  | fzofi |  | 
						
							| 99 |  | xpfi |  | 
						
							| 100 | 89 90 99 | mp2an |  | 
						
							| 101 |  | hashen |  | 
						
							| 102 | 98 100 101 | mp2an |  | 
						
							| 103 | 97 102 | sylib |  | 
						
							| 104 | 84 85 103 | syl2an |  | 
						
							| 105 | 8 12 104 | syl2anc |  | 
						
							| 106 | 105 1 2 | 3brtr4g |  | 
						
							| 107 | 2 100 | eqeltri |  | 
						
							| 108 |  | f1finf1o |  | 
						
							| 109 | 106 107 108 | sylancl |  | 
						
							| 110 | 83 109 | mpbid |  |