Metamath Proof Explorer


Theorem fzouzsplit

Description: Split an upper integer set into a half-open integer range and another upper integer set. (Contributed by Mario Carneiro, 21-Sep-2016)

Ref Expression
Assertion fzouzsplit ( 𝐵 ∈ ( ℤ𝐴 ) → ( ℤ𝐴 ) = ( ( 𝐴 ..^ 𝐵 ) ∪ ( ℤ𝐵 ) ) )

Proof

Step Hyp Ref Expression
1 eluzelre ( 𝐵 ∈ ( ℤ𝐴 ) → 𝐵 ∈ ℝ )
2 eluzelre ( 𝑥 ∈ ( ℤ𝐴 ) → 𝑥 ∈ ℝ )
3 lelttric ( ( 𝐵 ∈ ℝ ∧ 𝑥 ∈ ℝ ) → ( 𝐵𝑥𝑥 < 𝐵 ) )
4 1 2 3 syl2an ( ( 𝐵 ∈ ( ℤ𝐴 ) ∧ 𝑥 ∈ ( ℤ𝐴 ) ) → ( 𝐵𝑥𝑥 < 𝐵 ) )
5 4 orcomd ( ( 𝐵 ∈ ( ℤ𝐴 ) ∧ 𝑥 ∈ ( ℤ𝐴 ) ) → ( 𝑥 < 𝐵𝐵𝑥 ) )
6 id ( 𝑥 ∈ ( ℤ𝐴 ) → 𝑥 ∈ ( ℤ𝐴 ) )
7 eluzelz ( 𝐵 ∈ ( ℤ𝐴 ) → 𝐵 ∈ ℤ )
8 elfzo2 ( 𝑥 ∈ ( 𝐴 ..^ 𝐵 ) ↔ ( 𝑥 ∈ ( ℤ𝐴 ) ∧ 𝐵 ∈ ℤ ∧ 𝑥 < 𝐵 ) )
9 df-3an ( ( 𝑥 ∈ ( ℤ𝐴 ) ∧ 𝐵 ∈ ℤ ∧ 𝑥 < 𝐵 ) ↔ ( ( 𝑥 ∈ ( ℤ𝐴 ) ∧ 𝐵 ∈ ℤ ) ∧ 𝑥 < 𝐵 ) )
10 8 9 bitri ( 𝑥 ∈ ( 𝐴 ..^ 𝐵 ) ↔ ( ( 𝑥 ∈ ( ℤ𝐴 ) ∧ 𝐵 ∈ ℤ ) ∧ 𝑥 < 𝐵 ) )
11 10 baib ( ( 𝑥 ∈ ( ℤ𝐴 ) ∧ 𝐵 ∈ ℤ ) → ( 𝑥 ∈ ( 𝐴 ..^ 𝐵 ) ↔ 𝑥 < 𝐵 ) )
12 6 7 11 syl2anr ( ( 𝐵 ∈ ( ℤ𝐴 ) ∧ 𝑥 ∈ ( ℤ𝐴 ) ) → ( 𝑥 ∈ ( 𝐴 ..^ 𝐵 ) ↔ 𝑥 < 𝐵 ) )
13 eluzelz ( 𝑥 ∈ ( ℤ𝐴 ) → 𝑥 ∈ ℤ )
14 eluz ( ( 𝐵 ∈ ℤ ∧ 𝑥 ∈ ℤ ) → ( 𝑥 ∈ ( ℤ𝐵 ) ↔ 𝐵𝑥 ) )
15 7 13 14 syl2an ( ( 𝐵 ∈ ( ℤ𝐴 ) ∧ 𝑥 ∈ ( ℤ𝐴 ) ) → ( 𝑥 ∈ ( ℤ𝐵 ) ↔ 𝐵𝑥 ) )
16 12 15 orbi12d ( ( 𝐵 ∈ ( ℤ𝐴 ) ∧ 𝑥 ∈ ( ℤ𝐴 ) ) → ( ( 𝑥 ∈ ( 𝐴 ..^ 𝐵 ) ∨ 𝑥 ∈ ( ℤ𝐵 ) ) ↔ ( 𝑥 < 𝐵𝐵𝑥 ) ) )
17 5 16 mpbird ( ( 𝐵 ∈ ( ℤ𝐴 ) ∧ 𝑥 ∈ ( ℤ𝐴 ) ) → ( 𝑥 ∈ ( 𝐴 ..^ 𝐵 ) ∨ 𝑥 ∈ ( ℤ𝐵 ) ) )
18 17 ex ( 𝐵 ∈ ( ℤ𝐴 ) → ( 𝑥 ∈ ( ℤ𝐴 ) → ( 𝑥 ∈ ( 𝐴 ..^ 𝐵 ) ∨ 𝑥 ∈ ( ℤ𝐵 ) ) ) )
19 elun ( 𝑥 ∈ ( ( 𝐴 ..^ 𝐵 ) ∪ ( ℤ𝐵 ) ) ↔ ( 𝑥 ∈ ( 𝐴 ..^ 𝐵 ) ∨ 𝑥 ∈ ( ℤ𝐵 ) ) )
20 18 19 syl6ibr ( 𝐵 ∈ ( ℤ𝐴 ) → ( 𝑥 ∈ ( ℤ𝐴 ) → 𝑥 ∈ ( ( 𝐴 ..^ 𝐵 ) ∪ ( ℤ𝐵 ) ) ) )
21 20 ssrdv ( 𝐵 ∈ ( ℤ𝐴 ) → ( ℤ𝐴 ) ⊆ ( ( 𝐴 ..^ 𝐵 ) ∪ ( ℤ𝐵 ) ) )
22 elfzouz ( 𝑥 ∈ ( 𝐴 ..^ 𝐵 ) → 𝑥 ∈ ( ℤ𝐴 ) )
23 22 ssriv ( 𝐴 ..^ 𝐵 ) ⊆ ( ℤ𝐴 )
24 23 a1i ( 𝐵 ∈ ( ℤ𝐴 ) → ( 𝐴 ..^ 𝐵 ) ⊆ ( ℤ𝐴 ) )
25 uzss ( 𝐵 ∈ ( ℤ𝐴 ) → ( ℤ𝐵 ) ⊆ ( ℤ𝐴 ) )
26 24 25 unssd ( 𝐵 ∈ ( ℤ𝐴 ) → ( ( 𝐴 ..^ 𝐵 ) ∪ ( ℤ𝐵 ) ) ⊆ ( ℤ𝐴 ) )
27 21 26 eqssd ( 𝐵 ∈ ( ℤ𝐴 ) → ( ℤ𝐴 ) = ( ( 𝐴 ..^ 𝐵 ) ∪ ( ℤ𝐵 ) ) )