Metamath Proof Explorer


Theorem fzsplit1nn0

Description: Split a finite 1-based set of integers in the middle, allowing either end to be empty ( ( 1 ... 0 ) ). (Contributed by Stefan O'Rear, 8-Oct-2014)

Ref Expression
Assertion fzsplit1nn0 ( ( 𝐴 ∈ ℕ0𝐵 ∈ ℕ0𝐴𝐵 ) → ( 1 ... 𝐵 ) = ( ( 1 ... 𝐴 ) ∪ ( ( 𝐴 + 1 ) ... 𝐵 ) ) )

Proof

Step Hyp Ref Expression
1 elnn0 ( 𝐴 ∈ ℕ0 ↔ ( 𝐴 ∈ ℕ ∨ 𝐴 = 0 ) )
2 1zzd ( ( 𝐴 ∈ ℕ ∧ ( 𝐵 ∈ ℕ0𝐴𝐵 ) ) → 1 ∈ ℤ )
3 nn0z ( 𝐵 ∈ ℕ0𝐵 ∈ ℤ )
4 3 ad2antrl ( ( 𝐴 ∈ ℕ ∧ ( 𝐵 ∈ ℕ0𝐴𝐵 ) ) → 𝐵 ∈ ℤ )
5 nnz ( 𝐴 ∈ ℕ → 𝐴 ∈ ℤ )
6 5 adantr ( ( 𝐴 ∈ ℕ ∧ ( 𝐵 ∈ ℕ0𝐴𝐵 ) ) → 𝐴 ∈ ℤ )
7 nnge1 ( 𝐴 ∈ ℕ → 1 ≤ 𝐴 )
8 7 adantr ( ( 𝐴 ∈ ℕ ∧ ( 𝐵 ∈ ℕ0𝐴𝐵 ) ) → 1 ≤ 𝐴 )
9 simprr ( ( 𝐴 ∈ ℕ ∧ ( 𝐵 ∈ ℕ0𝐴𝐵 ) ) → 𝐴𝐵 )
10 2 4 6 8 9 elfzd ( ( 𝐴 ∈ ℕ ∧ ( 𝐵 ∈ ℕ0𝐴𝐵 ) ) → 𝐴 ∈ ( 1 ... 𝐵 ) )
11 fzsplit ( 𝐴 ∈ ( 1 ... 𝐵 ) → ( 1 ... 𝐵 ) = ( ( 1 ... 𝐴 ) ∪ ( ( 𝐴 + 1 ) ... 𝐵 ) ) )
12 10 11 syl ( ( 𝐴 ∈ ℕ ∧ ( 𝐵 ∈ ℕ0𝐴𝐵 ) ) → ( 1 ... 𝐵 ) = ( ( 1 ... 𝐴 ) ∪ ( ( 𝐴 + 1 ) ... 𝐵 ) ) )
13 uncom ( ( 1 ... 𝐴 ) ∪ ( ( 𝐴 + 1 ) ... 𝐵 ) ) = ( ( ( 𝐴 + 1 ) ... 𝐵 ) ∪ ( 1 ... 𝐴 ) )
14 oveq1 ( 𝐴 = 0 → ( 𝐴 + 1 ) = ( 0 + 1 ) )
15 14 adantr ( ( 𝐴 = 0 ∧ ( 𝐵 ∈ ℕ0𝐴𝐵 ) ) → ( 𝐴 + 1 ) = ( 0 + 1 ) )
16 0p1e1 ( 0 + 1 ) = 1
17 15 16 eqtrdi ( ( 𝐴 = 0 ∧ ( 𝐵 ∈ ℕ0𝐴𝐵 ) ) → ( 𝐴 + 1 ) = 1 )
18 17 oveq1d ( ( 𝐴 = 0 ∧ ( 𝐵 ∈ ℕ0𝐴𝐵 ) ) → ( ( 𝐴 + 1 ) ... 𝐵 ) = ( 1 ... 𝐵 ) )
19 oveq2 ( 𝐴 = 0 → ( 1 ... 𝐴 ) = ( 1 ... 0 ) )
20 19 adantr ( ( 𝐴 = 0 ∧ ( 𝐵 ∈ ℕ0𝐴𝐵 ) ) → ( 1 ... 𝐴 ) = ( 1 ... 0 ) )
21 fz10 ( 1 ... 0 ) = ∅
22 20 21 eqtrdi ( ( 𝐴 = 0 ∧ ( 𝐵 ∈ ℕ0𝐴𝐵 ) ) → ( 1 ... 𝐴 ) = ∅ )
23 18 22 uneq12d ( ( 𝐴 = 0 ∧ ( 𝐵 ∈ ℕ0𝐴𝐵 ) ) → ( ( ( 𝐴 + 1 ) ... 𝐵 ) ∪ ( 1 ... 𝐴 ) ) = ( ( 1 ... 𝐵 ) ∪ ∅ ) )
24 un0 ( ( 1 ... 𝐵 ) ∪ ∅ ) = ( 1 ... 𝐵 )
25 23 24 eqtrdi ( ( 𝐴 = 0 ∧ ( 𝐵 ∈ ℕ0𝐴𝐵 ) ) → ( ( ( 𝐴 + 1 ) ... 𝐵 ) ∪ ( 1 ... 𝐴 ) ) = ( 1 ... 𝐵 ) )
26 13 25 eqtr2id ( ( 𝐴 = 0 ∧ ( 𝐵 ∈ ℕ0𝐴𝐵 ) ) → ( 1 ... 𝐵 ) = ( ( 1 ... 𝐴 ) ∪ ( ( 𝐴 + 1 ) ... 𝐵 ) ) )
27 12 26 jaoian ( ( ( 𝐴 ∈ ℕ ∨ 𝐴 = 0 ) ∧ ( 𝐵 ∈ ℕ0𝐴𝐵 ) ) → ( 1 ... 𝐵 ) = ( ( 1 ... 𝐴 ) ∪ ( ( 𝐴 + 1 ) ... 𝐵 ) ) )
28 27 ex ( ( 𝐴 ∈ ℕ ∨ 𝐴 = 0 ) → ( ( 𝐵 ∈ ℕ0𝐴𝐵 ) → ( 1 ... 𝐵 ) = ( ( 1 ... 𝐴 ) ∪ ( ( 𝐴 + 1 ) ... 𝐵 ) ) ) )
29 1 28 sylbi ( 𝐴 ∈ ℕ0 → ( ( 𝐵 ∈ ℕ0𝐴𝐵 ) → ( 1 ... 𝐵 ) = ( ( 1 ... 𝐴 ) ∪ ( ( 𝐴 + 1 ) ... 𝐵 ) ) ) )
30 29 3impib ( ( 𝐴 ∈ ℕ0𝐵 ∈ ℕ0𝐴𝐵 ) → ( 1 ... 𝐵 ) = ( ( 1 ... 𝐴 ) ∪ ( ( 𝐴 + 1 ) ... 𝐵 ) ) )