Metamath Proof Explorer


Theorem diophren

Description: Change variables in a Diophantine set, using class notation. This allows already proved Diophantine sets to be reused in contexts with more variables. (Contributed by Stefan O'Rear, 16-Oct-2014) (Revised by Stefan O'Rear, 5-Jun-2015)

Ref Expression
Assertion diophren ⊢ S ∈ Dioph ⁡ N ∧ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M → a ∈ ℕ 0 1 … M | a ∘ F ∈ S ∈ Dioph ⁡ M

Proof

Step Hyp Ref Expression
1 zex ⊢ ℤ ∈ V
2 difexg ⊢ ℤ ∈ V → ℤ ∖ ℕ ∈ V
3 1 2 ax-mp ⊢ ℤ ∖ ℕ ∈ V
4 ominf ⊢ ¬ ω ∈ Fin
5 nnuz ⊢ ℕ = ℤ ≥ 1
6 0p1e1 ⊢ 0 + 1 = 1
7 6 fveq2i ⊢ ℤ ≥ 0 + 1 = ℤ ≥ 1
8 5 7 eqtr4i ⊢ ℕ = ℤ ≥ 0 + 1
9 8 difeq2i ⊢ ℤ ∖ ℕ = ℤ ∖ ℤ ≥ 0 + 1
10 0z ⊢ 0 ∈ ℤ
11 lzenom ⊢ 0 ∈ ℤ → ℤ ∖ ℤ ≥ 0 + 1 ≈ ω
12 10 11 ax-mp ⊢ ℤ ∖ ℤ ≥ 0 + 1 ≈ ω
13 9 12 eqbrtri ⊢ ℤ ∖ ℕ ≈ ω
14 enfi ⊢ ℤ ∖ ℕ ≈ ω → ℤ ∖ ℕ ∈ Fin ↔ ω ∈ Fin
15 13 14 ax-mp ⊢ ℤ ∖ ℕ ∈ Fin ↔ ω ∈ Fin
16 4 15 mtbir ⊢ ¬ ℤ ∖ ℕ ∈ Fin
17 disjdifr ⊢ ℤ ∖ ℕ ∩ ℕ = ∅
18 3 16 17 eldioph4b ⊢ S ∈ Dioph ⁡ N ↔ N ∈ ℕ 0 ∧ ∃ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N S = c ∈ ℕ 0 1 … N | ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ c ∪ d = 0
19 simpr ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N ∧ a ∈ ℕ 0 1 … M → a ∈ ℕ 0 1 … M
20 simp-4r ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N ∧ a ∈ ℕ 0 1 … M → F : 1 … N ⟶ 1 … M
21 ovex ⊢ 1 … N ∈ V
22 21 mapco2 ⊢ a ∈ ℕ 0 1 … M ∧ F : 1 … N ⟶ 1 … M → a ∘ F ∈ ℕ 0 1 … N
23 19 20 22 syl2anc ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N ∧ a ∈ ℕ 0 1 … M → a ∘ F ∈ ℕ 0 1 … N
24 uneq1 ⊢ c = a ∘ F → c ∪ d = a ∘ F ∪ d
25 24 fveqeq2d ⊢ c = a ∘ F → b ⁡ c ∪ d = 0 ↔ b ⁡ a ∘ F ∪ d = 0
26 25 rexbidv ⊢ c = a ∘ F → ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ c ∪ d = 0 ↔ ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ a ∘ F ∪ d = 0
27 26 elrab3 ⊢ a ∘ F ∈ ℕ 0 1 … N → a ∘ F ∈ c ∈ ℕ 0 1 … N | ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ c ∪ d = 0 ↔ ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ a ∘ F ∪ d = 0
28 23 27 syl ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N ∧ a ∈ ℕ 0 1 … M → a ∘ F ∈ c ∈ ℕ 0 1 … N | ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ c ∪ d = 0 ↔ ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ a ∘ F ∪ d = 0
29 simp-5r ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → F : 1 … N ⟶ 1 … M
30 simplr ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → a ∈ ℕ 0 1 … M
31 simpr ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → d ∈ ℕ 0 ℤ ∖ ℕ
32 coundi ⊢ a ∪ d ∘ F ∪ I ↾ ℤ ∖ ℕ = a ∪ d ∘ F ∪ a ∪ d ∘ I ↾ ℤ ∖ ℕ
33 coundir ⊢ a ∪ d ∘ F = a ∘ F ∪ d ∘ F
34 elmapi ⊢ d ∈ ℕ 0 ℤ ∖ ℕ → d : ℤ ∖ ℕ ⟶ ℕ 0
35 34 3ad2ant3 ⊢ F : 1 … N ⟶ 1 … M ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → d : ℤ ∖ ℕ ⟶ ℕ 0
36 simp1 ⊢ F : 1 … N ⟶ 1 … M ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → F : 1 … N ⟶ 1 … M
37 incom ⊢ ℤ ∖ ℕ ∩ 1 … M = 1 … M ∩ ℤ ∖ ℕ
38 fz1ssnn ⊢ 1 … M ⊆ ℕ
39 disjdif ⊢ ℕ ∩ ℤ ∖ ℕ = ∅
40 ssdisj ⊢ 1 … M ⊆ ℕ ∧ ℕ ∩ ℤ ∖ ℕ = ∅ → 1 … M ∩ ℤ ∖ ℕ = ∅
41 38 39 40 mp2an ⊢ 1 … M ∩ ℤ ∖ ℕ = ∅
42 37 41 eqtri ⊢ ℤ ∖ ℕ ∩ 1 … M = ∅
43 42 a1i ⊢ F : 1 … N ⟶ 1 … M ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → ℤ ∖ ℕ ∩ 1 … M = ∅
44 coeq0i ⊢ d : ℤ ∖ ℕ ⟶ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ ℤ ∖ ℕ ∩ 1 … M = ∅ → d ∘ F = ∅
45 35 36 43 44 syl3anc ⊢ F : 1 … N ⟶ 1 … M ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → d ∘ F = ∅
46 45 uneq2d ⊢ F : 1 … N ⟶ 1 … M ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → a ∘ F ∪ d ∘ F = a ∘ F ∪ ∅
47 33 46 eqtrid ⊢ F : 1 … N ⟶ 1 … M ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → a ∪ d ∘ F = a ∘ F ∪ ∅
48 un0 ⊢ a ∘ F ∪ ∅ = a ∘ F
49 47 48 eqtrdi ⊢ F : 1 … N ⟶ 1 … M ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → a ∪ d ∘ F = a ∘ F
50 coundir ⊢ a ∪ d ∘ I ↾ ℤ ∖ ℕ = a ∘ I ↾ ℤ ∖ ℕ ∪ d ∘ I ↾ ℤ ∖ ℕ
51 elmapi ⊢ a ∈ ℕ 0 1 … M → a : 1 … M ⟶ ℕ 0
52 51 3ad2ant2 ⊢ F : 1 … N ⟶ 1 … M ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → a : 1 … M ⟶ ℕ 0
53 f1oi ⊢ I ↾ ℤ ∖ ℕ : ℤ ∖ ℕ ⟶ 1-1 onto ℤ ∖ ℕ
54 f1of ⊢ I ↾ ℤ ∖ ℕ : ℤ ∖ ℕ ⟶ 1-1 onto ℤ ∖ ℕ → I ↾ ℤ ∖ ℕ : ℤ ∖ ℕ ⟶ ℤ ∖ ℕ
55 53 54 ax-mp ⊢ I ↾ ℤ ∖ ℕ : ℤ ∖ ℕ ⟶ ℤ ∖ ℕ
56 coeq0i ⊢ a : 1 … M ⟶ ℕ 0 ∧ I ↾ ℤ ∖ ℕ : ℤ ∖ ℕ ⟶ ℤ ∖ ℕ ∧ 1 … M ∩ ℤ ∖ ℕ = ∅ → a ∘ I ↾ ℤ ∖ ℕ = ∅
57 55 41 56 mp3an23 ⊢ a : 1 … M ⟶ ℕ 0 → a ∘ I ↾ ℤ ∖ ℕ = ∅
58 52 57 syl ⊢ F : 1 … N ⟶ 1 … M ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → a ∘ I ↾ ℤ ∖ ℕ = ∅
59 coires1 ⊢ d ∘ I ↾ ℤ ∖ ℕ = d ↾ ℤ ∖ ℕ
60 ffn ⊢ d : ℤ ∖ ℕ ⟶ ℕ 0 → d Fn ℤ ∖ ℕ
61 fnresdm ⊢ d Fn ℤ ∖ ℕ → d ↾ ℤ ∖ ℕ = d
62 34 60 61 3syl ⊢ d ∈ ℕ 0 ℤ ∖ ℕ → d ↾ ℤ ∖ ℕ = d
63 59 62 eqtrid ⊢ d ∈ ℕ 0 ℤ ∖ ℕ → d ∘ I ↾ ℤ ∖ ℕ = d
64 63 3ad2ant3 ⊢ F : 1 … N ⟶ 1 … M ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → d ∘ I ↾ ℤ ∖ ℕ = d
65 58 64 uneq12d ⊢ F : 1 … N ⟶ 1 … M ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → a ∘ I ↾ ℤ ∖ ℕ ∪ d ∘ I ↾ ℤ ∖ ℕ = ∅ ∪ d
66 50 65 eqtrid ⊢ F : 1 … N ⟶ 1 … M ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → a ∪ d ∘ I ↾ ℤ ∖ ℕ = ∅ ∪ d
67 uncom ⊢ ∅ ∪ d = d ∪ ∅
68 un0 ⊢ d ∪ ∅ = d
69 67 68 eqtri ⊢ ∅ ∪ d = d
70 66 69 eqtrdi ⊢ F : 1 … N ⟶ 1 … M ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → a ∪ d ∘ I ↾ ℤ ∖ ℕ = d
71 49 70 uneq12d ⊢ F : 1 … N ⟶ 1 … M ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → a ∪ d ∘ F ∪ a ∪ d ∘ I ↾ ℤ ∖ ℕ = a ∘ F ∪ d
72 32 71 eqtr2id ⊢ F : 1 … N ⟶ 1 … M ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → a ∘ F ∪ d = a ∪ d ∘ F ∪ I ↾ ℤ ∖ ℕ
73 29 30 31 72 syl3anc ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → a ∘ F ∪ d = a ∪ d ∘ F ∪ I ↾ ℤ ∖ ℕ
74 73 fveq2d ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → b ⁡ a ∘ F ∪ d = b ⁡ a ∪ d ∘ F ∪ I ↾ ℤ ∖ ℕ
75 nn0ssz ⊢ ℕ 0 ⊆ ℤ
76 mapss ⊢ ℤ ∈ V ∧ ℕ 0 ⊆ ℤ → ℕ 0 ℤ ∖ ℕ ∪ 1 … M ⊆ ℤ ℤ ∖ ℕ ∪ 1 … M
77 1 75 76 mp2an ⊢ ℕ 0 ℤ ∖ ℕ ∪ 1 … M ⊆ ℤ ℤ ∖ ℕ ∪ 1 … M
78 41 reseq2i ⊢ a ↾ 1 … M ∩ ℤ ∖ ℕ = a ↾ ∅
79 res0 ⊢ a ↾ ∅ = ∅
80 78 79 eqtri ⊢ a ↾ 1 … M ∩ ℤ ∖ ℕ = ∅
81 41 reseq2i ⊢ d ↾ 1 … M ∩ ℤ ∖ ℕ = d ↾ ∅
82 res0 ⊢ d ↾ ∅ = ∅
83 81 82 eqtri ⊢ d ↾ 1 … M ∩ ℤ ∖ ℕ = ∅
84 80 83 eqtr4i ⊢ a ↾ 1 … M ∩ ℤ ∖ ℕ = d ↾ 1 … M ∩ ℤ ∖ ℕ
85 elmapresaun ⊢ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ ∧ a ↾ 1 … M ∩ ℤ ∖ ℕ = d ↾ 1 … M ∩ ℤ ∖ ℕ → a ∪ d ∈ ℕ 0 1 … M ∪ ℤ ∖ ℕ
86 uncom ⊢ 1 … M ∪ ℤ ∖ ℕ = ℤ ∖ ℕ ∪ 1 … M
87 86 oveq2i ⊢ ℕ 0 1 … M ∪ ℤ ∖ ℕ = ℕ 0 ℤ ∖ ℕ ∪ 1 … M
88 85 87 eleqtrdi ⊢ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ ∧ a ↾ 1 … M ∩ ℤ ∖ ℕ = d ↾ 1 … M ∩ ℤ ∖ ℕ → a ∪ d ∈ ℕ 0 ℤ ∖ ℕ ∪ 1 … M
89 84 88 mp3an3 ⊢ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → a ∪ d ∈ ℕ 0 ℤ ∖ ℕ ∪ 1 … M
90 77 89 sselid ⊢ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → a ∪ d ∈ ℤ ℤ ∖ ℕ ∪ 1 … M
91 90 adantll ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → a ∪ d ∈ ℤ ℤ ∖ ℕ ∪ 1 … M
92 coeq1 ⊢ e = a ∪ d → e ∘ F ∪ I ↾ ℤ ∖ ℕ = a ∪ d ∘ F ∪ I ↾ ℤ ∖ ℕ
93 92 fveq2d ⊢ e = a ∪ d → b ⁡ e ∘ F ∪ I ↾ ℤ ∖ ℕ = b ⁡ a ∪ d ∘ F ∪ I ↾ ℤ ∖ ℕ
94 eqid ⊢ e ∈ ℤ ℤ ∖ ℕ ∪ 1 … M ⟼ b ⁡ e ∘ F ∪ I ↾ ℤ ∖ ℕ = e ∈ ℤ ℤ ∖ ℕ ∪ 1 … M ⟼ b ⁡ e ∘ F ∪ I ↾ ℤ ∖ ℕ
95 fvex ⊢ b ⁡ a ∪ d ∘ F ∪ I ↾ ℤ ∖ ℕ ∈ V
96 93 94 95 fvmpt ⊢ a ∪ d ∈ ℤ ℤ ∖ ℕ ∪ 1 … M → e ∈ ℤ ℤ ∖ ℕ ∪ 1 … M ⟼ b ⁡ e ∘ F ∪ I ↾ ℤ ∖ ℕ ⁡ a ∪ d = b ⁡ a ∪ d ∘ F ∪ I ↾ ℤ ∖ ℕ
97 91 96 syl ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → e ∈ ℤ ℤ ∖ ℕ ∪ 1 … M ⟼ b ⁡ e ∘ F ∪ I ↾ ℤ ∖ ℕ ⁡ a ∪ d = b ⁡ a ∪ d ∘ F ∪ I ↾ ℤ ∖ ℕ
98 74 97 eqtr4d ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → b ⁡ a ∘ F ∪ d = e ∈ ℤ ℤ ∖ ℕ ∪ 1 … M ⟼ b ⁡ e ∘ F ∪ I ↾ ℤ ∖ ℕ ⁡ a ∪ d
99 98 eqeq1d ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N ∧ a ∈ ℕ 0 1 … M ∧ d ∈ ℕ 0 ℤ ∖ ℕ → b ⁡ a ∘ F ∪ d = 0 ↔ e ∈ ℤ ℤ ∖ ℕ ∪ 1 … M ⟼ b ⁡ e ∘ F ∪ I ↾ ℤ ∖ ℕ ⁡ a ∪ d = 0
100 99 rexbidva ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N ∧ a ∈ ℕ 0 1 … M → ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ a ∘ F ∪ d = 0 ↔ ∃ d ∈ ℕ 0 ℤ ∖ ℕ e ∈ ℤ ℤ ∖ ℕ ∪ 1 … M ⟼ b ⁡ e ∘ F ∪ I ↾ ℤ ∖ ℕ ⁡ a ∪ d = 0
101 28 100 bitrd ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N ∧ a ∈ ℕ 0 1 … M → a ∘ F ∈ c ∈ ℕ 0 1 … N | ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ c ∪ d = 0 ↔ ∃ d ∈ ℕ 0 ℤ ∖ ℕ e ∈ ℤ ℤ ∖ ℕ ∪ 1 … M ⟼ b ⁡ e ∘ F ∪ I ↾ ℤ ∖ ℕ ⁡ a ∪ d = 0
102 101 rabbidva ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N → a ∈ ℕ 0 1 … M | a ∘ F ∈ c ∈ ℕ 0 1 … N | ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ c ∪ d = 0 = a ∈ ℕ 0 1 … M | ∃ d ∈ ℕ 0 ℤ ∖ ℕ e ∈ ℤ ℤ ∖ ℕ ∪ 1 … M ⟼ b ⁡ e ∘ F ∪ I ↾ ℤ ∖ ℕ ⁡ a ∪ d = 0
103 simplll ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N → M ∈ ℕ 0
104 ovex ⊢ 1 … M ∈ V
105 3 104 unex ⊢ ℤ ∖ ℕ ∪ 1 … M ∈ V
106 105 a1i ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N → ℤ ∖ ℕ ∪ 1 … M ∈ V
107 simpr ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N → b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N
108 55 a1i ⊢ F : 1 … N ⟶ 1 … M → I ↾ ℤ ∖ ℕ : ℤ ∖ ℕ ⟶ ℤ ∖ ℕ
109 id ⊢ F : 1 … N ⟶ 1 … M → F : 1 … N ⟶ 1 … M
110 incom ⊢ ℤ ∖ ℕ ∩ 1 … N = 1 … N ∩ ℤ ∖ ℕ
111 fz1ssnn ⊢ 1 … N ⊆ ℕ
112 ssdisj ⊢ 1 … N ⊆ ℕ ∧ ℕ ∩ ℤ ∖ ℕ = ∅ → 1 … N ∩ ℤ ∖ ℕ = ∅
113 111 39 112 mp2an ⊢ 1 … N ∩ ℤ ∖ ℕ = ∅
114 110 113 eqtri ⊢ ℤ ∖ ℕ ∩ 1 … N = ∅
115 114 a1i ⊢ F : 1 … N ⟶ 1 … M → ℤ ∖ ℕ ∩ 1 … N = ∅
116 fun ⊢ I ↾ ℤ ∖ ℕ : ℤ ∖ ℕ ⟶ ℤ ∖ ℕ ∧ F : 1 … N ⟶ 1 … M ∧ ℤ ∖ ℕ ∩ 1 … N = ∅ → I ↾ ℤ ∖ ℕ ∪ F : ℤ ∖ ℕ ∪ 1 … N ⟶ ℤ ∖ ℕ ∪ 1 … M
117 108 109 115 116 syl21anc ⊢ F : 1 … N ⟶ 1 … M → I ↾ ℤ ∖ ℕ ∪ F : ℤ ∖ ℕ ∪ 1 … N ⟶ ℤ ∖ ℕ ∪ 1 … M
118 uncom ⊢ I ↾ ℤ ∖ ℕ ∪ F = F ∪ I ↾ ℤ ∖ ℕ
119 118 feq1i ⊢ I ↾ ℤ ∖ ℕ ∪ F : ℤ ∖ ℕ ∪ 1 … N ⟶ ℤ ∖ ℕ ∪ 1 … M ↔ F ∪ I ↾ ℤ ∖ ℕ : ℤ ∖ ℕ ∪ 1 … N ⟶ ℤ ∖ ℕ ∪ 1 … M
120 117 119 sylib ⊢ F : 1 … N ⟶ 1 … M → F ∪ I ↾ ℤ ∖ ℕ : ℤ ∖ ℕ ∪ 1 … N ⟶ ℤ ∖ ℕ ∪ 1 … M
121 120 ad3antlr ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N → F ∪ I ↾ ℤ ∖ ℕ : ℤ ∖ ℕ ∪ 1 … N ⟶ ℤ ∖ ℕ ∪ 1 … M
122 mzprename ⊢ ℤ ∖ ℕ ∪ 1 … M ∈ V ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N ∧ F ∪ I ↾ ℤ ∖ ℕ : ℤ ∖ ℕ ∪ 1 … N ⟶ ℤ ∖ ℕ ∪ 1 … M → e ∈ ℤ ℤ ∖ ℕ ∪ 1 … M ⟼ b ⁡ e ∘ F ∪ I ↾ ℤ ∖ ℕ ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … M
123 106 107 121 122 syl3anc ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N → e ∈ ℤ ℤ ∖ ℕ ∪ 1 … M ⟼ b ⁡ e ∘ F ∪ I ↾ ℤ ∖ ℕ ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … M
124 3 16 17 eldioph4i ⊢ M ∈ ℕ 0 ∧ e ∈ ℤ ℤ ∖ ℕ ∪ 1 … M ⟼ b ⁡ e ∘ F ∪ I ↾ ℤ ∖ ℕ ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … M → a ∈ ℕ 0 1 … M | ∃ d ∈ ℕ 0 ℤ ∖ ℕ e ∈ ℤ ℤ ∖ ℕ ∪ 1 … M ⟼ b ⁡ e ∘ F ∪ I ↾ ℤ ∖ ℕ ⁡ a ∪ d = 0 ∈ Dioph ⁡ M
125 103 123 124 syl2anc ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N → a ∈ ℕ 0 1 … M | ∃ d ∈ ℕ 0 ℤ ∖ ℕ e ∈ ℤ ℤ ∖ ℕ ∪ 1 … M ⟼ b ⁡ e ∘ F ∪ I ↾ ℤ ∖ ℕ ⁡ a ∪ d = 0 ∈ Dioph ⁡ M
126 102 125 eqeltrd ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N → a ∈ ℕ 0 1 … M | a ∘ F ∈ c ∈ ℕ 0 1 … N | ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ c ∪ d = 0 ∈ Dioph ⁡ M
127 eleq2 ⊢ S = c ∈ ℕ 0 1 … N | ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ c ∪ d = 0 → a ∘ F ∈ S ↔ a ∘ F ∈ c ∈ ℕ 0 1 … N | ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ c ∪ d = 0
128 127 rabbidv ⊢ S = c ∈ ℕ 0 1 … N | ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ c ∪ d = 0 → a ∈ ℕ 0 1 … M | a ∘ F ∈ S = a ∈ ℕ 0 1 … M | a ∘ F ∈ c ∈ ℕ 0 1 … N | ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ c ∪ d = 0
129 128 eleq1d ⊢ S = c ∈ ℕ 0 1 … N | ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ c ∪ d = 0 → a ∈ ℕ 0 1 … M | a ∘ F ∈ S ∈ Dioph ⁡ M ↔ a ∈ ℕ 0 1 … M | a ∘ F ∈ c ∈ ℕ 0 1 … N | ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ c ∪ d = 0 ∈ Dioph ⁡ M
130 126 129 syl5ibrcom ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 ∧ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N → S = c ∈ ℕ 0 1 … N | ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ c ∪ d = 0 → a ∈ ℕ 0 1 … M | a ∘ F ∈ S ∈ Dioph ⁡ M
131 130 rexlimdva ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M ∧ N ∈ ℕ 0 → ∃ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N S = c ∈ ℕ 0 1 … N | ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ c ∪ d = 0 → a ∈ ℕ 0 1 … M | a ∘ F ∈ S ∈ Dioph ⁡ M
132 131 expimpd ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M → N ∈ ℕ 0 ∧ ∃ b ∈ mzPoly ⁡ ℤ ∖ ℕ ∪ 1 … N S = c ∈ ℕ 0 1 … N | ∃ d ∈ ℕ 0 ℤ ∖ ℕ b ⁡ c ∪ d = 0 → a ∈ ℕ 0 1 … M | a ∘ F ∈ S ∈ Dioph ⁡ M
133 18 132 biimtrid ⊢ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M → S ∈ Dioph ⁡ N → a ∈ ℕ 0 1 … M | a ∘ F ∈ S ∈ Dioph ⁡ M
134 133 impcom ⊢ S ∈ Dioph ⁡ N ∧ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M → a ∈ ℕ 0 1 … M | a ∘ F ∈ S ∈ Dioph ⁡ M
135 134 3impb ⊢ S ∈ Dioph ⁡ N ∧ M ∈ ℕ 0 ∧ F : 1 … N ⟶ 1 … M → a ∈ ℕ 0 1 … M | a ∘ F ∈ S ∈ Dioph ⁡ M