Metamath Proof Explorer


Theorem iuneqfzuzlem

Description: Lemma for iuneqfzuz : here, inclusion is proven; aiuneqfzuz uses this lemma twice, to prove equality. (Contributed by Glauco Siliprandi, 17-Aug-2020)

Ref Expression
Hypothesis iuneqfzuzlem.z 𝑍 = ( ℤ𝑁 )
Assertion iuneqfzuzlem ( ∀ 𝑚𝑍 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵 𝑛𝑍 𝐴 𝑛𝑍 𝐵 )

Proof

Step Hyp Ref Expression
1 iuneqfzuzlem.z 𝑍 = ( ℤ𝑁 )
2 nfcv 𝑚 𝐴
3 nfcsb1v 𝑛 𝑚 / 𝑛 𝐴
4 csbeq1a ( 𝑛 = 𝑚𝐴 = 𝑚 / 𝑛 𝐴 )
5 2 3 4 cbviun 𝑛𝑍 𝐴 = 𝑚𝑍 𝑚 / 𝑛 𝐴
6 5 eleq2i ( 𝑥 𝑛𝑍 𝐴𝑥 𝑚𝑍 𝑚 / 𝑛 𝐴 )
7 eliun ( 𝑥 𝑚𝑍 𝑚 / 𝑛 𝐴 ↔ ∃ 𝑚𝑍 𝑥 𝑚 / 𝑛 𝐴 )
8 6 7 bitri ( 𝑥 𝑛𝑍 𝐴 ↔ ∃ 𝑚𝑍 𝑥 𝑚 / 𝑛 𝐴 )
9 8 bilani ( ( ∀ 𝑚𝑍 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵𝑥 𝑛𝑍 𝐴 ) → ∃ 𝑚𝑍 𝑥 𝑚 / 𝑛 𝐴 )
10 nfra1 𝑚𝑚𝑍 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵
11 nfv 𝑚 𝑥 𝑛𝑍 𝐵
12 simp2 ( ( ∀ 𝑚𝑍 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵𝑚𝑍𝑥 𝑚 / 𝑛 𝐴 ) → 𝑚𝑍 )
13 rspa ( ( ∀ 𝑚𝑍 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵𝑚𝑍 ) → 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵 )
14 13 3adant3 ( ( ∀ 𝑚𝑍 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵𝑚𝑍𝑥 𝑚 / 𝑛 𝐴 ) → 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵 )
15 simp3 ( ( ∀ 𝑚𝑍 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵𝑚𝑍𝑥 𝑚 / 𝑛 𝐴 ) → 𝑥 𝑚 / 𝑛 𝐴 )
16 id ( 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵 )
17 fzssuz ( 𝑁 ... 𝑚 ) ⊆ ( ℤ𝑁 )
18 1 eqcomi ( ℤ𝑁 ) = 𝑍
19 17 18 sseqtri ( 𝑁 ... 𝑚 ) ⊆ 𝑍
20 iunss1 ( ( 𝑁 ... 𝑚 ) ⊆ 𝑍 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵 𝑛𝑍 𝐵 )
21 19 20 mp1i ( 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵 𝑛𝑍 𝐵 )
22 16 21 eqsstrd ( 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 𝑛𝑍 𝐵 )
23 22 3ad2ant2 ( ( 𝑚𝑍 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵𝑥 𝑚 / 𝑛 𝐴 ) → 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 𝑛𝑍 𝐵 )
24 1 eleq2i ( 𝑚𝑍𝑚 ∈ ( ℤ𝑁 ) )
25 24 biimpi ( 𝑚𝑍𝑚 ∈ ( ℤ𝑁 ) )
26 eluzel2 ( 𝑚 ∈ ( ℤ𝑁 ) → 𝑁 ∈ ℤ )
27 25 26 syl ( 𝑚𝑍𝑁 ∈ ℤ )
28 eluzelz ( 𝑚 ∈ ( ℤ𝑁 ) → 𝑚 ∈ ℤ )
29 25 28 syl ( 𝑚𝑍𝑚 ∈ ℤ )
30 eluzle ( 𝑚 ∈ ( ℤ𝑁 ) → 𝑁𝑚 )
31 25 30 syl ( 𝑚𝑍𝑁𝑚 )
32 29 zred ( 𝑚𝑍𝑚 ∈ ℝ )
33 leid ( 𝑚 ∈ ℝ → 𝑚𝑚 )
34 32 33 syl ( 𝑚𝑍𝑚𝑚 )
35 27 29 29 31 34 elfzd ( 𝑚𝑍𝑚 ∈ ( 𝑁 ... 𝑚 ) )
36 nfcv 𝑛 𝑥
37 36 3 nfel 𝑛 𝑥 𝑚 / 𝑛 𝐴
38 4 eleq2d ( 𝑛 = 𝑚 → ( 𝑥𝐴𝑥 𝑚 / 𝑛 𝐴 ) )
39 37 38 rspce ( ( 𝑚 ∈ ( 𝑁 ... 𝑚 ) ∧ 𝑥 𝑚 / 𝑛 𝐴 ) → ∃ 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝑥𝐴 )
40 35 39 sylan ( ( 𝑚𝑍𝑥 𝑚 / 𝑛 𝐴 ) → ∃ 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝑥𝐴 )
41 eliun ( 𝑥 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 ↔ ∃ 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝑥𝐴 )
42 40 41 sylibr ( ( 𝑚𝑍𝑥 𝑚 / 𝑛 𝐴 ) → 𝑥 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 )
43 42 3adant2 ( ( 𝑚𝑍 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵𝑥 𝑚 / 𝑛 𝐴 ) → 𝑥 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 )
44 23 43 sseldd ( ( 𝑚𝑍 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵𝑥 𝑚 / 𝑛 𝐴 ) → 𝑥 𝑛𝑍 𝐵 )
45 12 14 15 44 syl3anc ( ( ∀ 𝑚𝑍 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵𝑚𝑍𝑥 𝑚 / 𝑛 𝐴 ) → 𝑥 𝑛𝑍 𝐵 )
46 45 3exp ( ∀ 𝑚𝑍 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵 → ( 𝑚𝑍 → ( 𝑥 𝑚 / 𝑛 𝐴𝑥 𝑛𝑍 𝐵 ) ) )
47 10 11 46 rexlimd ( ∀ 𝑚𝑍 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵 → ( ∃ 𝑚𝑍 𝑥 𝑚 / 𝑛 𝐴𝑥 𝑛𝑍 𝐵 ) )
48 47 adantr ( ( ∀ 𝑚𝑍 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵𝑥 𝑛𝑍 𝐴 ) → ( ∃ 𝑚𝑍 𝑥 𝑚 / 𝑛 𝐴𝑥 𝑛𝑍 𝐵 ) )
49 9 48 mpd ( ( ∀ 𝑚𝑍 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵𝑥 𝑛𝑍 𝐴 ) → 𝑥 𝑛𝑍 𝐵 )
50 49 ralrimiva ( ∀ 𝑚𝑍 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵 → ∀ 𝑥 𝑛𝑍 𝐴 𝑥 𝑛𝑍 𝐵 )
51 dfss3 ( 𝑛𝑍 𝐴 𝑛𝑍 𝐵 ↔ ∀ 𝑥 𝑛𝑍 𝐴 𝑥 𝑛𝑍 𝐵 )
52 50 51 sylibr ( ∀ 𝑚𝑍 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐴 = 𝑛 ∈ ( 𝑁 ... 𝑚 ) 𝐵 𝑛𝑍 𝐴 𝑛𝑍 𝐵 )