Metamath Proof Explorer


Theorem eldiophss

Description: Diophantine sets are sets of tuples of nonnegative integers. (Contributed by Stefan O'Rear, 10-Oct-2014) (Revised by Stefan O'Rear, 6-May-2015)

Ref Expression
Assertion eldiophss ( 𝐴 ∈ ( Dioph ‘ 𝐵 ) → 𝐴 ⊆ ( ℕ0m ( 1 ... 𝐵 ) ) )

Proof

Step Hyp Ref Expression
1 eldioph3b ( 𝐴 ∈ ( Dioph ‘ 𝐵 ) ↔ ( 𝐵 ∈ ℕ0 ∧ ∃ 𝑎 ∈ ( mzPoly ‘ ℕ ) 𝐴 = { 𝑏 ∣ ∃ 𝑐 ∈ ( ℕ0m ℕ ) ( 𝑏 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∧ ( 𝑎𝑐 ) = 0 ) } ) )
2 simpr ( ( ( 𝐵 ∈ ℕ0𝑎 ∈ ( mzPoly ‘ ℕ ) ) ∧ 𝐴 = { 𝑏 ∣ ∃ 𝑐 ∈ ( ℕ0m ℕ ) ( 𝑏 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∧ ( 𝑎𝑐 ) = 0 ) } ) → 𝐴 = { 𝑏 ∣ ∃ 𝑐 ∈ ( ℕ0m ℕ ) ( 𝑏 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∧ ( 𝑎𝑐 ) = 0 ) } )
3 vex 𝑑 ∈ V
4 eqeq1 ( 𝑏 = 𝑑 → ( 𝑏 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ↔ 𝑑 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ) )
5 4 anbi1d ( 𝑏 = 𝑑 → ( ( 𝑏 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∧ ( 𝑎𝑐 ) = 0 ) ↔ ( 𝑑 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∧ ( 𝑎𝑐 ) = 0 ) ) )
6 5 rexbidv ( 𝑏 = 𝑑 → ( ∃ 𝑐 ∈ ( ℕ0m ℕ ) ( 𝑏 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∧ ( 𝑎𝑐 ) = 0 ) ↔ ∃ 𝑐 ∈ ( ℕ0m ℕ ) ( 𝑑 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∧ ( 𝑎𝑐 ) = 0 ) ) )
7 3 6 elab ( 𝑑 ∈ { 𝑏 ∣ ∃ 𝑐 ∈ ( ℕ0m ℕ ) ( 𝑏 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∧ ( 𝑎𝑐 ) = 0 ) } ↔ ∃ 𝑐 ∈ ( ℕ0m ℕ ) ( 𝑑 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∧ ( 𝑎𝑐 ) = 0 ) )
8 simpr ( ( ( ( 𝐵 ∈ ℕ0𝑎 ∈ ( mzPoly ‘ ℕ ) ) ∧ 𝑐 ∈ ( ℕ0m ℕ ) ) ∧ 𝑑 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ) → 𝑑 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) )
9 elfznn ( 𝑎 ∈ ( 1 ... 𝐵 ) → 𝑎 ∈ ℕ )
10 9 ssriv ( 1 ... 𝐵 ) ⊆ ℕ
11 elmapssres ( ( 𝑐 ∈ ( ℕ0m ℕ ) ∧ ( 1 ... 𝐵 ) ⊆ ℕ ) → ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∈ ( ℕ0m ( 1 ... 𝐵 ) ) )
12 10 11 mpan2 ( 𝑐 ∈ ( ℕ0m ℕ ) → ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∈ ( ℕ0m ( 1 ... 𝐵 ) ) )
13 12 ad2antlr ( ( ( ( 𝐵 ∈ ℕ0𝑎 ∈ ( mzPoly ‘ ℕ ) ) ∧ 𝑐 ∈ ( ℕ0m ℕ ) ) ∧ 𝑑 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ) → ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∈ ( ℕ0m ( 1 ... 𝐵 ) ) )
14 8 13 eqeltrd ( ( ( ( 𝐵 ∈ ℕ0𝑎 ∈ ( mzPoly ‘ ℕ ) ) ∧ 𝑐 ∈ ( ℕ0m ℕ ) ) ∧ 𝑑 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ) → 𝑑 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) )
15 14 ex ( ( ( 𝐵 ∈ ℕ0𝑎 ∈ ( mzPoly ‘ ℕ ) ) ∧ 𝑐 ∈ ( ℕ0m ℕ ) ) → ( 𝑑 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) → 𝑑 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) ) )
16 15 adantrd ( ( ( 𝐵 ∈ ℕ0𝑎 ∈ ( mzPoly ‘ ℕ ) ) ∧ 𝑐 ∈ ( ℕ0m ℕ ) ) → ( ( 𝑑 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∧ ( 𝑎𝑐 ) = 0 ) → 𝑑 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) ) )
17 16 rexlimdva ( ( 𝐵 ∈ ℕ0𝑎 ∈ ( mzPoly ‘ ℕ ) ) → ( ∃ 𝑐 ∈ ( ℕ0m ℕ ) ( 𝑑 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∧ ( 𝑎𝑐 ) = 0 ) → 𝑑 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) ) )
18 7 17 syl5bi ( ( 𝐵 ∈ ℕ0𝑎 ∈ ( mzPoly ‘ ℕ ) ) → ( 𝑑 ∈ { 𝑏 ∣ ∃ 𝑐 ∈ ( ℕ0m ℕ ) ( 𝑏 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∧ ( 𝑎𝑐 ) = 0 ) } → 𝑑 ∈ ( ℕ0m ( 1 ... 𝐵 ) ) ) )
19 18 ssrdv ( ( 𝐵 ∈ ℕ0𝑎 ∈ ( mzPoly ‘ ℕ ) ) → { 𝑏 ∣ ∃ 𝑐 ∈ ( ℕ0m ℕ ) ( 𝑏 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∧ ( 𝑎𝑐 ) = 0 ) } ⊆ ( ℕ0m ( 1 ... 𝐵 ) ) )
20 19 adantr ( ( ( 𝐵 ∈ ℕ0𝑎 ∈ ( mzPoly ‘ ℕ ) ) ∧ 𝐴 = { 𝑏 ∣ ∃ 𝑐 ∈ ( ℕ0m ℕ ) ( 𝑏 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∧ ( 𝑎𝑐 ) = 0 ) } ) → { 𝑏 ∣ ∃ 𝑐 ∈ ( ℕ0m ℕ ) ( 𝑏 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∧ ( 𝑎𝑐 ) = 0 ) } ⊆ ( ℕ0m ( 1 ... 𝐵 ) ) )
21 2 20 eqsstrd ( ( ( 𝐵 ∈ ℕ0𝑎 ∈ ( mzPoly ‘ ℕ ) ) ∧ 𝐴 = { 𝑏 ∣ ∃ 𝑐 ∈ ( ℕ0m ℕ ) ( 𝑏 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∧ ( 𝑎𝑐 ) = 0 ) } ) → 𝐴 ⊆ ( ℕ0m ( 1 ... 𝐵 ) ) )
22 21 r19.29an ( ( 𝐵 ∈ ℕ0 ∧ ∃ 𝑎 ∈ ( mzPoly ‘ ℕ ) 𝐴 = { 𝑏 ∣ ∃ 𝑐 ∈ ( ℕ0m ℕ ) ( 𝑏 = ( 𝑐 ↾ ( 1 ... 𝐵 ) ) ∧ ( 𝑎𝑐 ) = 0 ) } ) → 𝐴 ⊆ ( ℕ0m ( 1 ... 𝐵 ) ) )
23 1 22 sylbi ( 𝐴 ∈ ( Dioph ‘ 𝐵 ) → 𝐴 ⊆ ( ℕ0m ( 1 ... 𝐵 ) ) )