Metamath Proof Explorer


Theorem nzss

Description: The set of multiples ofm, mℤ, is a subset of those ofn, nℤ, iffn dividesm. Lemma 2.1(a) of https://www.mscs.dal.ca/~selinger/3343/handouts/ideals.pdf p. 5, with mℤ and nℤ as images of the divides relation underm andn. (Contributed by Steve Rodriguez, 20-Jan-2020)

Ref Expression
Hypotheses nzss.m ( 𝜑𝑀 ∈ ℤ )
nzss.n ( 𝜑𝑁𝑉 )
Assertion nzss ( 𝜑 → ( ( ∥ “ { 𝑀 } ) ⊆ ( ∥ “ { 𝑁 } ) ↔ 𝑁𝑀 ) )

Proof

Step Hyp Ref Expression
1 nzss.m ( 𝜑𝑀 ∈ ℤ )
2 nzss.n ( 𝜑𝑁𝑉 )
3 iddvds ( 𝑀 ∈ ℤ → 𝑀𝑀 )
4 breq2 ( 𝑥 = 𝑀 → ( 𝑀𝑥𝑀𝑀 ) )
5 4 elabg ( 𝑀 ∈ ℤ → ( 𝑀 ∈ { 𝑥𝑀𝑥 } ↔ 𝑀𝑀 ) )
6 3 5 mpbird ( 𝑀 ∈ ℤ → 𝑀 ∈ { 𝑥𝑀𝑥 } )
7 reldvds Rel ∥
8 relimasn ( Rel ∥ → ( ∥ “ { 𝑀 } ) = { 𝑥𝑀𝑥 } )
9 7 8 ax-mp ( ∥ “ { 𝑀 } ) = { 𝑥𝑀𝑥 }
10 6 9 eleqtrrdi ( 𝑀 ∈ ℤ → 𝑀 ∈ ( ∥ “ { 𝑀 } ) )
11 ssel ( ( ∥ “ { 𝑀 } ) ⊆ ( ∥ “ { 𝑁 } ) → ( 𝑀 ∈ ( ∥ “ { 𝑀 } ) → 𝑀 ∈ ( ∥ “ { 𝑁 } ) ) )
12 10 11 syl5 ( ( ∥ “ { 𝑀 } ) ⊆ ( ∥ “ { 𝑁 } ) → ( 𝑀 ∈ ℤ → 𝑀 ∈ ( ∥ “ { 𝑁 } ) ) )
13 breq2 ( 𝑥 = 𝑀 → ( 𝑁𝑥𝑁𝑀 ) )
14 relimasn ( Rel ∥ → ( ∥ “ { 𝑁 } ) = { 𝑥𝑁𝑥 } )
15 7 14 ax-mp ( ∥ “ { 𝑁 } ) = { 𝑥𝑁𝑥 }
16 13 15 elab2g ( 𝑀 ∈ ℤ → ( 𝑀 ∈ ( ∥ “ { 𝑁 } ) ↔ 𝑁𝑀 ) )
17 12 16 mpbidi ( ( ∥ “ { 𝑀 } ) ⊆ ( ∥ “ { 𝑁 } ) → ( 𝑀 ∈ ℤ → 𝑁𝑀 ) )
18 17 com12 ( 𝑀 ∈ ℤ → ( ( ∥ “ { 𝑀 } ) ⊆ ( ∥ “ { 𝑁 } ) → 𝑁𝑀 ) )
19 18 adantr ( ( 𝑀 ∈ ℤ ∧ 𝑁𝑉 ) → ( ( ∥ “ { 𝑀 } ) ⊆ ( ∥ “ { 𝑁 } ) → 𝑁𝑀 ) )
20 ssid { 0 } ⊆ { 0 }
21 simpl ( ( 𝑁𝑀𝑁 = 0 ) → 𝑁𝑀 )
22 breq1 ( 𝑁 = 0 → ( 𝑁𝑀 ↔ 0 ∥ 𝑀 ) )
23 dvdszrcl ( 𝑁𝑀 → ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℤ ) )
24 23 simprd ( 𝑁𝑀𝑀 ∈ ℤ )
25 0dvds ( 𝑀 ∈ ℤ → ( 0 ∥ 𝑀𝑀 = 0 ) )
26 24 25 syl ( 𝑁𝑀 → ( 0 ∥ 𝑀𝑀 = 0 ) )
27 22 26 sylan9bbr ( ( 𝑁𝑀𝑁 = 0 ) → ( 𝑁𝑀𝑀 = 0 ) )
28 21 27 mpbid ( ( 𝑁𝑀𝑁 = 0 ) → 𝑀 = 0 )
29 28 breq1d ( ( 𝑁𝑀𝑁 = 0 ) → ( 𝑀𝑥 ↔ 0 ∥ 𝑥 ) )
30 0dvds ( 𝑥 ∈ ℤ → ( 0 ∥ 𝑥𝑥 = 0 ) )
31 29 30 sylan9bb ( ( ( 𝑁𝑀𝑁 = 0 ) ∧ 𝑥 ∈ ℤ ) → ( 𝑀𝑥𝑥 = 0 ) )
32 31 rabbidva ( ( 𝑁𝑀𝑁 = 0 ) → { 𝑥 ∈ ℤ ∣ 𝑀𝑥 } = { 𝑥 ∈ ℤ ∣ 𝑥 = 0 } )
33 0z 0 ∈ ℤ
34 rabsn ( 0 ∈ ℤ → { 𝑥 ∈ ℤ ∣ 𝑥 = 0 } = { 0 } )
35 33 34 ax-mp { 𝑥 ∈ ℤ ∣ 𝑥 = 0 } = { 0 }
36 32 35 eqtrdi ( ( 𝑁𝑀𝑁 = 0 ) → { 𝑥 ∈ ℤ ∣ 𝑀𝑥 } = { 0 } )
37 breq1 ( 𝑁 = 0 → ( 𝑁𝑥 ↔ 0 ∥ 𝑥 ) )
38 37 rabbidv ( 𝑁 = 0 → { 𝑥 ∈ ℤ ∣ 𝑁𝑥 } = { 𝑥 ∈ ℤ ∣ 0 ∥ 𝑥 } )
39 30 rabbiia { 𝑥 ∈ ℤ ∣ 0 ∥ 𝑥 } = { 𝑥 ∈ ℤ ∣ 𝑥 = 0 }
40 39 35 eqtri { 𝑥 ∈ ℤ ∣ 0 ∥ 𝑥 } = { 0 }
41 38 40 eqtrdi ( 𝑁 = 0 → { 𝑥 ∈ ℤ ∣ 𝑁𝑥 } = { 0 } )
42 41 adantl ( ( 𝑁𝑀𝑁 = 0 ) → { 𝑥 ∈ ℤ ∣ 𝑁𝑥 } = { 0 } )
43 36 42 sseq12d ( ( 𝑁𝑀𝑁 = 0 ) → ( { 𝑥 ∈ ℤ ∣ 𝑀𝑥 } ⊆ { 𝑥 ∈ ℤ ∣ 𝑁𝑥 } ↔ { 0 } ⊆ { 0 } ) )
44 20 43 mpbiri ( ( 𝑁𝑀𝑁 = 0 ) → { 𝑥 ∈ ℤ ∣ 𝑀𝑥 } ⊆ { 𝑥 ∈ ℤ ∣ 𝑁𝑥 } )
45 24 zcnd ( 𝑁𝑀𝑀 ∈ ℂ )
46 45 ad2antrr ( ( ( 𝑁𝑀𝑁 ≠ 0 ) ∧ 𝑛 ∈ ℤ ) → 𝑀 ∈ ℂ )
47 23 simpld ( 𝑁𝑀𝑁 ∈ ℤ )
48 47 zcnd ( 𝑁𝑀𝑁 ∈ ℂ )
49 48 ad2antrr ( ( ( 𝑁𝑀𝑁 ≠ 0 ) ∧ 𝑛 ∈ ℤ ) → 𝑁 ∈ ℂ )
50 simplr ( ( ( 𝑁𝑀𝑁 ≠ 0 ) ∧ 𝑛 ∈ ℤ ) → 𝑁 ≠ 0 )
51 46 49 50 divcan2d ( ( ( 𝑁𝑀𝑁 ≠ 0 ) ∧ 𝑛 ∈ ℤ ) → ( 𝑁 · ( 𝑀 / 𝑁 ) ) = 𝑀 )
52 51 breq1d ( ( ( 𝑁𝑀𝑁 ≠ 0 ) ∧ 𝑛 ∈ ℤ ) → ( ( 𝑁 · ( 𝑀 / 𝑁 ) ) ∥ 𝑛𝑀𝑛 ) )
53 47 adantr ( ( 𝑁𝑀𝑁 ≠ 0 ) → 𝑁 ∈ ℤ )
54 dvdsval2 ( ( 𝑁 ∈ ℤ ∧ 𝑁 ≠ 0 ∧ 𝑀 ∈ ℤ ) → ( 𝑁𝑀 ↔ ( 𝑀 / 𝑁 ) ∈ ℤ ) )
55 54 biimpd ( ( 𝑁 ∈ ℤ ∧ 𝑁 ≠ 0 ∧ 𝑀 ∈ ℤ ) → ( 𝑁𝑀 → ( 𝑀 / 𝑁 ) ∈ ℤ ) )
56 55 3com23 ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℤ ∧ 𝑁 ≠ 0 ) → ( 𝑁𝑀 → ( 𝑀 / 𝑁 ) ∈ ℤ ) )
57 56 3expa ( ( ( 𝑁 ∈ ℤ ∧ 𝑀 ∈ ℤ ) ∧ 𝑁 ≠ 0 ) → ( 𝑁𝑀 → ( 𝑀 / 𝑁 ) ∈ ℤ ) )
58 23 57 sylan ( ( 𝑁𝑀𝑁 ≠ 0 ) → ( 𝑁𝑀 → ( 𝑀 / 𝑁 ) ∈ ℤ ) )
59 58 imp ( ( ( 𝑁𝑀𝑁 ≠ 0 ) ∧ 𝑁𝑀 ) → ( 𝑀 / 𝑁 ) ∈ ℤ )
60 59 anabss1 ( ( 𝑁𝑀𝑁 ≠ 0 ) → ( 𝑀 / 𝑁 ) ∈ ℤ )
61 53 60 jca ( ( 𝑁𝑀𝑁 ≠ 0 ) → ( 𝑁 ∈ ℤ ∧ ( 𝑀 / 𝑁 ) ∈ ℤ ) )
62 muldvds1 ( ( 𝑁 ∈ ℤ ∧ ( 𝑀 / 𝑁 ) ∈ ℤ ∧ 𝑛 ∈ ℤ ) → ( ( 𝑁 · ( 𝑀 / 𝑁 ) ) ∥ 𝑛𝑁𝑛 ) )
63 62 3expa ( ( ( 𝑁 ∈ ℤ ∧ ( 𝑀 / 𝑁 ) ∈ ℤ ) ∧ 𝑛 ∈ ℤ ) → ( ( 𝑁 · ( 𝑀 / 𝑁 ) ) ∥ 𝑛𝑁𝑛 ) )
64 61 63 sylan ( ( ( 𝑁𝑀𝑁 ≠ 0 ) ∧ 𝑛 ∈ ℤ ) → ( ( 𝑁 · ( 𝑀 / 𝑁 ) ) ∥ 𝑛𝑁𝑛 ) )
65 52 64 sylbird ( ( ( 𝑁𝑀𝑁 ≠ 0 ) ∧ 𝑛 ∈ ℤ ) → ( 𝑀𝑛𝑁𝑛 ) )
66 65 ss2rabdv ( ( 𝑁𝑀𝑁 ≠ 0 ) → { 𝑛 ∈ ℤ ∣ 𝑀𝑛 } ⊆ { 𝑛 ∈ ℤ ∣ 𝑁𝑛 } )
67 breq2 ( 𝑛 = 𝑥 → ( 𝑀𝑛𝑀𝑥 ) )
68 67 cbvrabv { 𝑛 ∈ ℤ ∣ 𝑀𝑛 } = { 𝑥 ∈ ℤ ∣ 𝑀𝑥 }
69 breq2 ( 𝑛 = 𝑥 → ( 𝑁𝑛𝑁𝑥 ) )
70 69 cbvrabv { 𝑛 ∈ ℤ ∣ 𝑁𝑛 } = { 𝑥 ∈ ℤ ∣ 𝑁𝑥 }
71 66 68 70 3sstr3g ( ( 𝑁𝑀𝑁 ≠ 0 ) → { 𝑥 ∈ ℤ ∣ 𝑀𝑥 } ⊆ { 𝑥 ∈ ℤ ∣ 𝑁𝑥 } )
72 44 71 pm2.61dane ( 𝑁𝑀 → { 𝑥 ∈ ℤ ∣ 𝑀𝑥 } ⊆ { 𝑥 ∈ ℤ ∣ 𝑁𝑥 } )
73 breq1 ( 𝑛 = 𝑀 → ( 𝑛𝑥𝑀𝑥 ) )
74 73 rabbidv ( 𝑛 = 𝑀 → { 𝑥 ∈ ℤ ∣ 𝑛𝑥 } = { 𝑥 ∈ ℤ ∣ 𝑀𝑥 } )
75 73 abbidv ( 𝑛 = 𝑀 → { 𝑥𝑛𝑥 } = { 𝑥𝑀𝑥 } )
76 74 75 eqeq12d ( 𝑛 = 𝑀 → ( { 𝑥 ∈ ℤ ∣ 𝑛𝑥 } = { 𝑥𝑛𝑥 } ↔ { 𝑥 ∈ ℤ ∣ 𝑀𝑥 } = { 𝑥𝑀𝑥 } ) )
77 simpr ( ( 𝑦 ∈ ℤ ∧ 𝑛𝑦 ) → 𝑛𝑦 )
78 dvdszrcl ( 𝑛𝑦 → ( 𝑛 ∈ ℤ ∧ 𝑦 ∈ ℤ ) )
79 78 simprd ( 𝑛𝑦𝑦 ∈ ℤ )
80 79 ancri ( 𝑛𝑦 → ( 𝑦 ∈ ℤ ∧ 𝑛𝑦 ) )
81 77 80 impbii ( ( 𝑦 ∈ ℤ ∧ 𝑛𝑦 ) ↔ 𝑛𝑦 )
82 breq2 ( 𝑥 = 𝑦 → ( 𝑛𝑥𝑛𝑦 ) )
83 82 elrab ( 𝑦 ∈ { 𝑥 ∈ ℤ ∣ 𝑛𝑥 } ↔ ( 𝑦 ∈ ℤ ∧ 𝑛𝑦 ) )
84 vex 𝑦 ∈ V
85 84 82 elab ( 𝑦 ∈ { 𝑥𝑛𝑥 } ↔ 𝑛𝑦 )
86 81 83 85 3bitr4i ( 𝑦 ∈ { 𝑥 ∈ ℤ ∣ 𝑛𝑥 } ↔ 𝑦 ∈ { 𝑥𝑛𝑥 } )
87 86 eqriv { 𝑥 ∈ ℤ ∣ 𝑛𝑥 } = { 𝑥𝑛𝑥 }
88 76 87 vtoclg ( 𝑀 ∈ ℤ → { 𝑥 ∈ ℤ ∣ 𝑀𝑥 } = { 𝑥𝑀𝑥 } )
89 88 adantr ( ( 𝑀 ∈ ℤ ∧ 𝑁𝑉 ) → { 𝑥 ∈ ℤ ∣ 𝑀𝑥 } = { 𝑥𝑀𝑥 } )
90 breq1 ( 𝑛 = 𝑁 → ( 𝑛𝑥𝑁𝑥 ) )
91 90 rabbidv ( 𝑛 = 𝑁 → { 𝑥 ∈ ℤ ∣ 𝑛𝑥 } = { 𝑥 ∈ ℤ ∣ 𝑁𝑥 } )
92 90 abbidv ( 𝑛 = 𝑁 → { 𝑥𝑛𝑥 } = { 𝑥𝑁𝑥 } )
93 91 92 eqeq12d ( 𝑛 = 𝑁 → ( { 𝑥 ∈ ℤ ∣ 𝑛𝑥 } = { 𝑥𝑛𝑥 } ↔ { 𝑥 ∈ ℤ ∣ 𝑁𝑥 } = { 𝑥𝑁𝑥 } ) )
94 93 87 vtoclg ( 𝑁𝑉 → { 𝑥 ∈ ℤ ∣ 𝑁𝑥 } = { 𝑥𝑁𝑥 } )
95 94 adantl ( ( 𝑀 ∈ ℤ ∧ 𝑁𝑉 ) → { 𝑥 ∈ ℤ ∣ 𝑁𝑥 } = { 𝑥𝑁𝑥 } )
96 89 95 sseq12d ( ( 𝑀 ∈ ℤ ∧ 𝑁𝑉 ) → ( { 𝑥 ∈ ℤ ∣ 𝑀𝑥 } ⊆ { 𝑥 ∈ ℤ ∣ 𝑁𝑥 } ↔ { 𝑥𝑀𝑥 } ⊆ { 𝑥𝑁𝑥 } ) )
97 72 96 syl5ib ( ( 𝑀 ∈ ℤ ∧ 𝑁𝑉 ) → ( 𝑁𝑀 → { 𝑥𝑀𝑥 } ⊆ { 𝑥𝑁𝑥 } ) )
98 9 15 sseq12i ( ( ∥ “ { 𝑀 } ) ⊆ ( ∥ “ { 𝑁 } ) ↔ { 𝑥𝑀𝑥 } ⊆ { 𝑥𝑁𝑥 } )
99 97 98 syl6ibr ( ( 𝑀 ∈ ℤ ∧ 𝑁𝑉 ) → ( 𝑁𝑀 → ( ∥ “ { 𝑀 } ) ⊆ ( ∥ “ { 𝑁 } ) ) )
100 19 99 impbid ( ( 𝑀 ∈ ℤ ∧ 𝑁𝑉 ) → ( ( ∥ “ { 𝑀 } ) ⊆ ( ∥ “ { 𝑁 } ) ↔ 𝑁𝑀 ) )
101 1 2 100 syl2anc ( 𝜑 → ( ( ∥ “ { 𝑀 } ) ⊆ ( ∥ “ { 𝑁 } ) ↔ 𝑁𝑀 ) )