Step | Hyp | Ref
| Expression |
1 | | prodmo.1 |
. . 3
        |
2 | | prodmo.2 |
. . 3
 
   |
3 | | prodmodclem2a.dc |
. . 3
 
    
DECID
  |
4 | | prodmolem2.7 |
. . . 4

      |
5 | | prodmolem2.9 |
. . . . . . 7

    ♯       |
6 | | 1zzd 9293 |
. . . . . . . . . . . 12
   |
7 | | prodmolem2.5 |
. . . . . . . . . . . . 13
   |
8 | 7 | nnzd 9387 |
. . . . . . . . . . . 12
   |
9 | 6, 8 | fzfigd 10444 |
. . . . . . . . . . 11
       |
10 | | prodmolem2.8 |
. . . . . . . . . . 11
           |
11 | 9, 10 | fihasheqf1od 10782 |
. . . . . . . . . 10
 ♯      ♯    |
12 | 7 | nnnn0d 9242 |
. . . . . . . . . . 11
   |
13 | | hashfz1 10776 |
. . . . . . . . . . 11

♯        |
14 | 12, 13 | syl 14 |
. . . . . . . . . 10
 ♯        |
15 | 11, 14 | eqtr3d 2222 |
. . . . . . . . 9
 ♯    |
16 | 15 | oveq2d 5904 |
. . . . . . . 8
    ♯         |
17 | | isoeq4 5818 |
. . . . . . . 8
    ♯            ♯    
          |
18 | 16, 17 | syl 14 |
. . . . . . 7
      ♯    
          |
19 | 5, 18 | mpbid 147 |
. . . . . 6

         |
20 | | isof1o 5821 |
. . . . . 6
                  |
21 | | f1of 5473 |
. . . . . 6
        
          |
22 | 19, 20, 21 | 3syl 17 |
. . . . 5
           |
23 | | nnuz 9576 |
. . . . . . 7
     |
24 | 7, 23 | eleqtrdi 2280 |
. . . . . 6
       |
25 | | eluzfz2 10045 |
. . . . . 6
    
      |
26 | 24, 25 | syl 14 |
. . . . 5
       |
27 | 22, 26 | ffvelcdmd 5665 |
. . . 4
       |
28 | 4, 27 | sseldd 3168 |
. . 3
           |
29 | 4 | sselda 3167 |
. . . . . 6
 
       |
30 | 19, 20 | syl 14 |
. . . . . . . . 9
           |
31 | | f1ocnvfv2 5792 |
. . . . . . . . 9
         
            |
32 | 30, 31 | sylan 283 |
. . . . . . . 8
 
            |
33 | | f1ocnv 5486 |
. . . . . . . . . . . 12
        
           |
34 | | f1of 5473 |
. . . . . . . . . . . 12
                     |
35 | 30, 33, 34 | 3syl 17 |
. . . . . . . . . . 11
            |
36 | 35 | ffvelcdmda 5664 |
. . . . . . . . . 10
 
            |
37 | | elfzle2 10041 |
. . . . . . . . . 10
                 |
38 | 36, 37 | syl 14 |
. . . . . . . . 9
 
        |
39 | 19 | adantr 276 |
. . . . . . . . . 10
 
          |
40 | | fzssuz 10078 |
. . . . . . . . . . . . 13
         |
41 | | uzssz 9560 |
. . . . . . . . . . . . . 14
     |
42 | | zssre 9273 |
. . . . . . . . . . . . . 14
 |
43 | 41, 42 | sstri 3176 |
. . . . . . . . . . . . 13
     |
44 | 40, 43 | sstri 3176 |
. . . . . . . . . . . 12
     |
45 | | ressxr 8014 |
. . . . . . . . . . . 12
 |
46 | 44, 45 | sstri 3176 |
. . . . . . . . . . 11
     |
47 | 46 | a1i 9 |
. . . . . . . . . 10
 
       |
48 | | uzssz 9560 |
. . . . . . . . . . . . . 14
     |
49 | 48, 42 | sstri 3176 |
. . . . . . . . . . . . 13
     |
50 | 49, 45 | sstri 3176 |
. . . . . . . . . . . 12
     |
51 | 4, 50 | sstrdi 3179 |
. . . . . . . . . . 11

  |
52 | 51 | adantr 276 |
. . . . . . . . . 10
 
   |
53 | 26 | adantr 276 |
. . . . . . . . . 10
 
       |
54 | | leisorel 10830 |
. . . . . . . . . 10
 
                                           
       |
55 | 39, 47, 52, 36, 53, 54 | syl122anc 1257 |
. . . . . . . . 9
 
               
       |
56 | 38, 55 | mpbid 147 |
. . . . . . . 8
 
         
      |
57 | 32, 56 | eqbrtrrd 4039 |
. . . . . . 7
 
       |
58 | 4, 48 | sstrdi 3179 |
. . . . . . . . 9

  |
59 | 58 | sselda 3167 |
. . . . . . . 8
 
   |
60 | 48, 28 | sselid 3165 |
. . . . . . . . 9
       |
61 | 60 | adantr 276 |
. . . . . . . 8
 
       |
62 | | eluz 9554 |
. . . . . . . 8
               
       |
63 | 59, 61, 62 | syl2anc 411 |
. . . . . . 7
 
         
       |
64 | 57, 63 | mpbird 167 |
. . . . . 6
 
           |
65 | | elfzuzb 10032 |
. . . . . 6
                         |
66 | 29, 64, 65 | sylanbrc 417 |
. . . . 5
 
           |
67 | 66 | ex 115 |
. . . 4
             |
68 | 67 | ssrdv 3173 |
. . 3

          |
69 | 1, 2, 3, 28, 68 | fproddccvg 11593 |
. 2
                |
70 | | mullid 7968 |
. . . . 5
     |
71 | 70 | adantl 277 |
. . . 4
 

    |
72 | | mulrid 7967 |
. . . . 5
     |
73 | 72 | adantl 277 |
. . . 4
 

    |
74 | | mulcl 7951 |
. . . . 5
 
     |
75 | 74 | adantl 277 |
. . . 4
 
       |
76 | | 1cnd 7986 |
. . . 4
   |
77 | 26, 16 | eleqtrrd 2267 |
. . . 4
    ♯     |
78 | | eluzelz 9550 |
. . . . . 6
    
  |
79 | | simpr 110 |
. . . . . . . 8
       
   |
80 | 2 | ralrimiva 2560 |
. . . . . . . . 9
 
  |
81 | 80 | ad2antrr 488 |
. . . . . . . 8
       
 
  |
82 | | nfcsb1v 3102 |
. . . . . . . . . 10
  
 ![]_ ]_](_urbrack.gif)  |
83 | 82 | nfel1 2340 |
. . . . . . . . 9
    ![]_ ]_](_urbrack.gif)
 |
84 | | csbeq1a 3078 |
. . . . . . . . . 10
   ![]_ ]_](_urbrack.gif)   |
85 | 84 | eleq1d 2256 |
. . . . . . . . 9
 
  ![]_ ]_](_urbrack.gif)    |
86 | 83, 85 | rspc 2847 |
. . . . . . . 8
  
  ![]_ ]_](_urbrack.gif)
   |
87 | 79, 81, 86 | sylc 62 |
. . . . . . 7
       
   ![]_ ]_](_urbrack.gif)   |
88 | | 1cnd 7986 |
. . . . . . 7
       
   |
89 | | eleq1 2250 |
. . . . . . . . 9
 
   |
90 | 89 | dcbid 839 |
. . . . . . . 8
 DECID
DECID
   |
91 | 3 | ralrimiva 2560 |
. . . . . . . . 9
      DECID   |
92 | 91 | adantr 276 |
. . . . . . . 8
 
    
     DECID   |
93 | | simpr 110 |
. . . . . . . 8
 
    
      |
94 | 90, 92, 93 | rspcdva 2858 |
. . . . . . 7
 
    
DECID
  |
95 | 87, 88, 94 | ifcldadc 3575 |
. . . . . 6
 
    
   
 ![]_ ]_](_urbrack.gif)     |
96 | | nfcv 2329 |
. . . . . . 7
   |
97 | | nfv 1538 |
. . . . . . . 8
  |
98 | | nfcv 2329 |
. . . . . . . 8
   |
99 | 97, 82, 98 | nfif 3574 |
. . . . . . 7
       ![]_ ]_](_urbrack.gif)    |
100 | 89, 84 | ifbieq1d 3568 |
. . . . . . 7
           ![]_ ]_](_urbrack.gif)     |
101 | 96, 99, 100, 1 | fvmptf 5621 |
. . . . . 6
       ![]_ ]_](_urbrack.gif)           
 ![]_ ]_](_urbrack.gif)     |
102 | 78, 95, 101 | syl2an2 594 |
. . . . 5
 
    
         ![]_ ]_](_urbrack.gif)     |
103 | 102, 95 | eqeltrd 2264 |
. . . 4
 
    
      |
104 | | prodmodclem2.4 |
. . . . . 6
   ♯         ![]_ ]_](_urbrack.gif)     |
105 | | breq1 4018 |
. . . . . . 7
 
♯ 
♯     |
106 | | fveq2 5527 |
. . . . . . . 8
           |
107 | 106 | csbeq1d 3076 |
. . . . . . 7
       ![]_ ]_](_urbrack.gif)       ![]_ ]_](_urbrack.gif)   |
108 | 105, 107 | ifbieq1d 3568 |
. . . . . 6
   ♯         ![]_ ]_](_urbrack.gif)     ♯         ![]_ ]_](_urbrack.gif)     |
109 | | elnnuz 9577 |
. . . . . . . 8

      |
110 | 109 | biimpri 133 |
. . . . . . 7
    
  |
111 | 110 | adantl 277 |
. . . . . 6
 
    
  |
112 | 22 | ad2antrr 488 |
. . . . . . . . 9
       
♯             |
113 | | 1zzd 9293 |
. . . . . . . . . . 11
       
♯     |
114 | 8 | ad2antrr 488 |
. . . . . . . . . . 11
       
♯  
  |
115 | | eluzelz 9550 |
. . . . . . . . . . . 12
    
  |
116 | 115 | ad2antlr 489 |
. . . . . . . . . . 11
       
♯  
  |
117 | 113, 114,
116 | 3jca 1178 |
. . . . . . . . . 10
       
♯   
   |
118 | | eluzle 9553 |
. . . . . . . . . . . 12
    
  |
119 | 118 | ad2antlr 489 |
. . . . . . . . . . 11
       
♯  
  |
120 | | simpr 110 |
. . . . . . . . . . . 12
       
♯   ♯    |
121 | 15 | ad2antrr 488 |
. . . . . . . . . . . 12
       
♯   ♯    |
122 | 120, 121 | breqtrd 4041 |
. . . . . . . . . . 11
       
♯     |
123 | 119, 122 | jca 306 |
. . . . . . . . . 10
       
♯   
   |
124 | | elfz2 10028 |
. . . . . . . . . 10
    
 
 
    |
125 | 117, 123,
124 | sylanbrc 417 |
. . . . . . . . 9
       
♯  
      |
126 | 112, 125 | ffvelcdmd 5665 |
. . . . . . . 8
       
♯         |
127 | 80 | ad2antrr 488 |
. . . . . . . 8
       
♯   
  |
128 | | nfcsb1v 3102 |
. . . . . . . . . 10
        ![]_ ]_](_urbrack.gif)  |
129 | 128 | nfel1 2340 |
. . . . . . . . 9
        ![]_ ]_](_urbrack.gif)
 |
130 | | csbeq1a 3078 |
. . . . . . . . . 10
           ![]_ ]_](_urbrack.gif)   |
131 | 130 | eleq1d 2256 |
. . . . . . . . 9
     
      ![]_ ]_](_urbrack.gif)    |
132 | 129, 131 | rspc 2847 |
. . . . . . . 8
      
      ![]_ ]_](_urbrack.gif)
   |
133 | 126, 127,
132 | sylc 62 |
. . . . . . 7
       
♯         ![]_ ]_](_urbrack.gif)
  |
134 | | 1cnd 7986 |
. . . . . . 7
       
♯  
  |
135 | 111 | nnzd 9387 |
. . . . . . . 8
 
    
  |
136 | 15, 8 | eqeltrd 2264 |
. . . . . . . . 9
 ♯    |
137 | 136 | adantr 276 |
. . . . . . . 8
 
    
♯    |
138 | | zdcle 9342 |
. . . . . . . 8
  ♯  
DECID
♯    |
139 | 135, 137,
138 | syl2anc 411 |
. . . . . . 7
 
    
DECID
♯    |
140 | 133, 134,
139 | ifcldadc 3575 |
. . . . . 6
 
    
 
♯         ![]_ ]_](_urbrack.gif)     |
141 | 104, 108,
111, 140 | fvmptd3 5622 |
. . . . 5
 
    
      ♯         ![]_ ]_](_urbrack.gif)     |
142 | 141, 140 | eqeltrd 2264 |
. . . 4
 
    
      |
143 | | eldifi 3269 |
. . . . . . 7
        ♯           ♯      |
144 | | elfzelz 10038 |
. . . . . . 7
       ♯   
  |
145 | 143, 144 | syl 14 |
. . . . . 6
        ♯       |
146 | | eldifn 3270 |
. . . . . . . . 9
        ♯    
  |
147 | 146 | iffalsed 3556 |
. . . . . . . 8
        ♯          ![]_ ]_](_urbrack.gif)     |
148 | | ax-1cn 7917 |
. . . . . . . 8
 |
149 | 147, 148 | eqeltrdi 2278 |
. . . . . . 7
        ♯          ![]_ ]_](_urbrack.gif)     |
150 | 149 | adantl 277 |
. . . . . 6
 
       ♯           ![]_ ]_](_urbrack.gif)     |
151 | 145, 150,
101 | syl2an2 594 |
. . . . 5
 
       ♯             
 ![]_ ]_](_urbrack.gif)     |
152 | 147 | adantl 277 |
. . . . 5
 
       ♯           ![]_ ]_](_urbrack.gif)     |
153 | 151, 152 | eqtrd 2220 |
. . . 4
 
       ♯            |
154 | | elfzle2 10041 |
. . . . . . 7
    ♯  
♯    |
155 | 154 | adantl 277 |
. . . . . 6
 
   ♯    ♯    |
156 | 155 | iftrued 3553 |
. . . . 5
 
   ♯      ♯         ![]_ ]_](_urbrack.gif)         ![]_ ]_](_urbrack.gif)   |
157 | | breq1 4018 |
. . . . . . 7
 
♯ 
♯     |
158 | | fveq2 5527 |
. . . . . . . 8
           |
159 | 158 | csbeq1d 3076 |
. . . . . . 7
       ![]_ ]_](_urbrack.gif)       ![]_ ]_](_urbrack.gif)   |
160 | 157, 159 | ifbieq1d 3568 |
. . . . . 6
   ♯         ![]_ ]_](_urbrack.gif)     ♯         ![]_ ]_](_urbrack.gif)     |
161 | | elfznn 10067 |
. . . . . . 7
    ♯  
  |
162 | 161 | adantl 277 |
. . . . . 6
 
   ♯      |
163 | 22 | adantr 276 |
. . . . . . . . 9
 
   ♯              |
164 | | simpr 110 |
. . . . . . . . . 10
 
   ♯       ♯     |
165 | 15 | adantr 276 |
. . . . . . . . . . 11
 
   ♯    ♯    |
166 | 165 | oveq2d 5904 |
. . . . . . . . . 10
 
   ♯       ♯         |
167 | 164, 166 | eleqtrd 2266 |
. . . . . . . . 9
 
   ♯          |
168 | 163, 167 | ffvelcdmd 5665 |
. . . . . . . 8
 
   ♯          |
169 | 80 | adantr 276 |
. . . . . . . 8
 
   ♯    
  |
170 | | nfcsb1v 3102 |
. . . . . . . . . 10
        ![]_ ]_](_urbrack.gif)  |
171 | 170 | nfel1 2340 |
. . . . . . . . 9
        ![]_ ]_](_urbrack.gif)
 |
172 | | csbeq1a 3078 |
. . . . . . . . . 10
           ![]_ ]_](_urbrack.gif)   |
173 | 172 | eleq1d 2256 |
. . . . . . . . 9
     
      ![]_ ]_](_urbrack.gif)    |
174 | 171, 173 | rspc 2847 |
. . . . . . . 8
      
      ![]_ ]_](_urbrack.gif)
   |
175 | 168, 169,
174 | sylc 62 |
. . . . . . 7
 
   ♯          ![]_ ]_](_urbrack.gif)
  |
176 | 156, 175 | eqeltrd 2264 |
. . . . . 6
 
   ♯      ♯         ![]_ ]_](_urbrack.gif)     |
177 | 104, 160,
162, 176 | fvmptd3 5622 |
. . . . 5
 
   ♯          ♯         ![]_ ]_](_urbrack.gif)     |
178 | 4 | adantr 276 |
. . . . . . . . 9
 
   ♯          |
179 | 178, 48 | sstrdi 3179 |
. . . . . . . 8
 
   ♯      |
180 | 179, 168 | sseldd 3168 |
. . . . . . 7
 
   ♯          |
181 | 168 | iftrued 3553 |
. . . . . . . 8
 
   ♯                 ![]_ ]_](_urbrack.gif)         ![]_ ]_](_urbrack.gif)   |
182 | 181, 175 | eqeltrd 2264 |
. . . . . . 7
 
   ♯                 ![]_ ]_](_urbrack.gif)     |
183 | | nfcv 2329 |
. . . . . . . 8
       |
184 | | nfv 1538 |
. . . . . . . . 9
       |
185 | 184, 170,
98 | nfif 3574 |
. . . . . . . 8
               ![]_ ]_](_urbrack.gif)    |
186 | | eleq1 2250 |
. . . . . . . . 9
     
       |
187 | 186, 172 | ifbieq1d 3568 |
. . . . . . . 8
                       ![]_ ]_](_urbrack.gif)     |
188 | 183, 185,
187, 1 | fvmptf 5621 |
. . . . . . 7
                   ![]_ ]_](_urbrack.gif)                         ![]_ ]_](_urbrack.gif) 
   |
189 | 180, 182,
188 | syl2anc 411 |
. . . . . 6
 
   ♯                         ![]_ ]_](_urbrack.gif) 
   |
190 | 189, 181 | eqtrd 2220 |
. . . . 5
 
   ♯                  ![]_ ]_](_urbrack.gif)   |
191 | 156, 177,
190 | 3eqtr4d 2230 |
. . . 4
 
   ♯                  |
192 | 71, 73, 75, 76, 5, 77, 4, 103, 142, 153, 191 | seq3coll 10835 |
. . 3
                   |
193 | | prodmodc.3 |
. . . 4
   ♯         ![]_ ]_](_urbrack.gif) 
   |
194 | 7, 7 | jca 306 |
. . . 4
     |
195 | 1, 2, 193, 104, 194, 10, 30 | prodmodclem3 11596 |
. . 3
               |
196 | 192, 195 | eqtr4d 2223 |
. 2
                   |
197 | 69, 196 | breqtrd 4041 |
1
            |