Metamath Proof Explorer


Theorem fzsplit3

Description: Split a finite interval of integers into two parts. (Contributed by Thierry Arnoux, 2-May-2017)

Ref Expression
Assertion fzsplit3
|- ( K e. ( M ... N ) -> ( M ... N ) = ( ( M ... ( K - 1 ) ) u. ( K ... N ) ) )

Proof

Step Hyp Ref Expression
1 elfzelz
 |-  ( x e. ( M ... N ) -> x e. ZZ )
2 1 zred
 |-  ( x e. ( M ... N ) -> x e. RR )
3 elfzelz
 |-  ( K e. ( M ... N ) -> K e. ZZ )
4 3 zred
 |-  ( K e. ( M ... N ) -> K e. RR )
5 1red
 |-  ( K e. ( M ... N ) -> 1 e. RR )
6 4 5 resubcld
 |-  ( K e. ( M ... N ) -> ( K - 1 ) e. RR )
7 lelttric
 |-  ( ( x e. RR /\ ( K - 1 ) e. RR ) -> ( x <_ ( K - 1 ) \/ ( K - 1 ) < x ) )
8 2 6 7 syl2anr
 |-  ( ( K e. ( M ... N ) /\ x e. ( M ... N ) ) -> ( x <_ ( K - 1 ) \/ ( K - 1 ) < x ) )
9 elfzuz
 |-  ( x e. ( M ... N ) -> x e. ( ZZ>= ` M ) )
10 1zzd
 |-  ( K e. ( M ... N ) -> 1 e. ZZ )
11 3 10 zsubcld
 |-  ( K e. ( M ... N ) -> ( K - 1 ) e. ZZ )
12 elfz5
 |-  ( ( x e. ( ZZ>= ` M ) /\ ( K - 1 ) e. ZZ ) -> ( x e. ( M ... ( K - 1 ) ) <-> x <_ ( K - 1 ) ) )
13 9 11 12 syl2anr
 |-  ( ( K e. ( M ... N ) /\ x e. ( M ... N ) ) -> ( x e. ( M ... ( K - 1 ) ) <-> x <_ ( K - 1 ) ) )
14 elfzuz3
 |-  ( x e. ( M ... N ) -> N e. ( ZZ>= ` x ) )
15 14 adantl
 |-  ( ( K e. ( M ... N ) /\ x e. ( M ... N ) ) -> N e. ( ZZ>= ` x ) )
16 elfzuzb
 |-  ( x e. ( K ... N ) <-> ( x e. ( ZZ>= ` K ) /\ N e. ( ZZ>= ` x ) ) )
17 16 rbaib
 |-  ( N e. ( ZZ>= ` x ) -> ( x e. ( K ... N ) <-> x e. ( ZZ>= ` K ) ) )
18 15 17 syl
 |-  ( ( K e. ( M ... N ) /\ x e. ( M ... N ) ) -> ( x e. ( K ... N ) <-> x e. ( ZZ>= ` K ) ) )
19 eluz
 |-  ( ( K e. ZZ /\ x e. ZZ ) -> ( x e. ( ZZ>= ` K ) <-> K <_ x ) )
20 3 1 19 syl2an
 |-  ( ( K e. ( M ... N ) /\ x e. ( M ... N ) ) -> ( x e. ( ZZ>= ` K ) <-> K <_ x ) )
21 zlem1lt
 |-  ( ( K e. ZZ /\ x e. ZZ ) -> ( K <_ x <-> ( K - 1 ) < x ) )
22 3 1 21 syl2an
 |-  ( ( K e. ( M ... N ) /\ x e. ( M ... N ) ) -> ( K <_ x <-> ( K - 1 ) < x ) )
23 18 20 22 3bitrd
 |-  ( ( K e. ( M ... N ) /\ x e. ( M ... N ) ) -> ( x e. ( K ... N ) <-> ( K - 1 ) < x ) )
24 13 23 orbi12d
 |-  ( ( K e. ( M ... N ) /\ x e. ( M ... N ) ) -> ( ( x e. ( M ... ( K - 1 ) ) \/ x e. ( K ... N ) ) <-> ( x <_ ( K - 1 ) \/ ( K - 1 ) < x ) ) )
25 8 24 mpbird
 |-  ( ( K e. ( M ... N ) /\ x e. ( M ... N ) ) -> ( x e. ( M ... ( K - 1 ) ) \/ x e. ( K ... N ) ) )
26 elfzuz
 |-  ( x e. ( M ... ( K - 1 ) ) -> x e. ( ZZ>= ` M ) )
27 26 adantl
 |-  ( ( K e. ( M ... N ) /\ x e. ( M ... ( K - 1 ) ) ) -> x e. ( ZZ>= ` M ) )
28 elfzuz3
 |-  ( K e. ( M ... N ) -> N e. ( ZZ>= ` K ) )
29 28 adantr
 |-  ( ( K e. ( M ... N ) /\ x e. ( M ... ( K - 1 ) ) ) -> N e. ( ZZ>= ` K ) )
30 elfzuz3
 |-  ( x e. ( M ... ( K - 1 ) ) -> ( K - 1 ) e. ( ZZ>= ` x ) )
31 30 adantl
 |-  ( ( K e. ( M ... N ) /\ x e. ( M ... ( K - 1 ) ) ) -> ( K - 1 ) e. ( ZZ>= ` x ) )
32 peano2uz
 |-  ( ( K - 1 ) e. ( ZZ>= ` x ) -> ( ( K - 1 ) + 1 ) e. ( ZZ>= ` x ) )
33 31 32 syl
 |-  ( ( K e. ( M ... N ) /\ x e. ( M ... ( K - 1 ) ) ) -> ( ( K - 1 ) + 1 ) e. ( ZZ>= ` x ) )
34 4 recnd
 |-  ( K e. ( M ... N ) -> K e. CC )
35 5 recnd
 |-  ( K e. ( M ... N ) -> 1 e. CC )
36 34 35 npcand
 |-  ( K e. ( M ... N ) -> ( ( K - 1 ) + 1 ) = K )
37 36 eleq1d
 |-  ( K e. ( M ... N ) -> ( ( ( K - 1 ) + 1 ) e. ( ZZ>= ` x ) <-> K e. ( ZZ>= ` x ) ) )
38 37 adantr
 |-  ( ( K e. ( M ... N ) /\ x e. ( M ... ( K - 1 ) ) ) -> ( ( ( K - 1 ) + 1 ) e. ( ZZ>= ` x ) <-> K e. ( ZZ>= ` x ) ) )
39 33 38 mpbid
 |-  ( ( K e. ( M ... N ) /\ x e. ( M ... ( K - 1 ) ) ) -> K e. ( ZZ>= ` x ) )
40 uztrn
 |-  ( ( N e. ( ZZ>= ` K ) /\ K e. ( ZZ>= ` x ) ) -> N e. ( ZZ>= ` x ) )
41 29 39 40 syl2anc
 |-  ( ( K e. ( M ... N ) /\ x e. ( M ... ( K - 1 ) ) ) -> N e. ( ZZ>= ` x ) )
42 elfzuzb
 |-  ( x e. ( M ... N ) <-> ( x e. ( ZZ>= ` M ) /\ N e. ( ZZ>= ` x ) ) )
43 27 41 42 sylanbrc
 |-  ( ( K e. ( M ... N ) /\ x e. ( M ... ( K - 1 ) ) ) -> x e. ( M ... N ) )
44 elfzuz
 |-  ( x e. ( K ... N ) -> x e. ( ZZ>= ` K ) )
45 elfzuz
 |-  ( K e. ( M ... N ) -> K e. ( ZZ>= ` M ) )
46 uztrn
 |-  ( ( x e. ( ZZ>= ` K ) /\ K e. ( ZZ>= ` M ) ) -> x e. ( ZZ>= ` M ) )
47 44 45 46 syl2anr
 |-  ( ( K e. ( M ... N ) /\ x e. ( K ... N ) ) -> x e. ( ZZ>= ` M ) )
48 elfzuz3
 |-  ( x e. ( K ... N ) -> N e. ( ZZ>= ` x ) )
49 48 adantl
 |-  ( ( K e. ( M ... N ) /\ x e. ( K ... N ) ) -> N e. ( ZZ>= ` x ) )
50 47 49 42 sylanbrc
 |-  ( ( K e. ( M ... N ) /\ x e. ( K ... N ) ) -> x e. ( M ... N ) )
51 43 50 jaodan
 |-  ( ( K e. ( M ... N ) /\ ( x e. ( M ... ( K - 1 ) ) \/ x e. ( K ... N ) ) ) -> x e. ( M ... N ) )
52 25 51 impbida
 |-  ( K e. ( M ... N ) -> ( x e. ( M ... N ) <-> ( x e. ( M ... ( K - 1 ) ) \/ x e. ( K ... N ) ) ) )
53 elun
 |-  ( x e. ( ( M ... ( K - 1 ) ) u. ( K ... N ) ) <-> ( x e. ( M ... ( K - 1 ) ) \/ x e. ( K ... N ) ) )
54 52 53 bitr4di
 |-  ( K e. ( M ... N ) -> ( x e. ( M ... N ) <-> x e. ( ( M ... ( K - 1 ) ) u. ( K ... N ) ) ) )
55 54 eqrdv
 |-  ( K e. ( M ... N ) -> ( M ... N ) = ( ( M ... ( K - 1 ) ) u. ( K ... N ) ) )