Metamath Proof Explorer


Theorem fzoun

Description: A half-open integer range as union of two half-open integer ranges. (Contributed by AV, 23-Apr-2022)

Ref Expression
Assertion fzoun
|- ( ( B e. ( ZZ>= ` A ) /\ C e. NN0 ) -> ( A ..^ ( B + C ) ) = ( ( A ..^ B ) u. ( B ..^ ( B + C ) ) ) )

Proof

Step Hyp Ref Expression
1 eluzel2
 |-  ( B e. ( ZZ>= ` A ) -> A e. ZZ )
2 1 adantr
 |-  ( ( B e. ( ZZ>= ` A ) /\ C e. NN0 ) -> A e. ZZ )
3 eluzelz
 |-  ( B e. ( ZZ>= ` A ) -> B e. ZZ )
4 nn0z
 |-  ( C e. NN0 -> C e. ZZ )
5 zaddcl
 |-  ( ( B e. ZZ /\ C e. ZZ ) -> ( B + C ) e. ZZ )
6 3 4 5 syl2an
 |-  ( ( B e. ( ZZ>= ` A ) /\ C e. NN0 ) -> ( B + C ) e. ZZ )
7 3 adantr
 |-  ( ( B e. ( ZZ>= ` A ) /\ C e. NN0 ) -> B e. ZZ )
8 2 6 7 3jca
 |-  ( ( B e. ( ZZ>= ` A ) /\ C e. NN0 ) -> ( A e. ZZ /\ ( B + C ) e. ZZ /\ B e. ZZ ) )
9 eluzle
 |-  ( B e. ( ZZ>= ` A ) -> A <_ B )
10 9 adantr
 |-  ( ( B e. ( ZZ>= ` A ) /\ C e. NN0 ) -> A <_ B )
11 nn0ge0
 |-  ( C e. NN0 -> 0 <_ C )
12 11 adantl
 |-  ( ( B e. ( ZZ>= ` A ) /\ C e. NN0 ) -> 0 <_ C )
13 eluzelre
 |-  ( B e. ( ZZ>= ` A ) -> B e. RR )
14 nn0re
 |-  ( C e. NN0 -> C e. RR )
15 addge01
 |-  ( ( B e. RR /\ C e. RR ) -> ( 0 <_ C <-> B <_ ( B + C ) ) )
16 13 14 15 syl2an
 |-  ( ( B e. ( ZZ>= ` A ) /\ C e. NN0 ) -> ( 0 <_ C <-> B <_ ( B + C ) ) )
17 12 16 mpbid
 |-  ( ( B e. ( ZZ>= ` A ) /\ C e. NN0 ) -> B <_ ( B + C ) )
18 10 17 jca
 |-  ( ( B e. ( ZZ>= ` A ) /\ C e. NN0 ) -> ( A <_ B /\ B <_ ( B + C ) ) )
19 elfz2
 |-  ( B e. ( A ... ( B + C ) ) <-> ( ( A e. ZZ /\ ( B + C ) e. ZZ /\ B e. ZZ ) /\ ( A <_ B /\ B <_ ( B + C ) ) ) )
20 8 18 19 sylanbrc
 |-  ( ( B e. ( ZZ>= ` A ) /\ C e. NN0 ) -> B e. ( A ... ( B + C ) ) )
21 fzosplit
 |-  ( B e. ( A ... ( B + C ) ) -> ( A ..^ ( B + C ) ) = ( ( A ..^ B ) u. ( B ..^ ( B + C ) ) ) )
22 20 21 syl
 |-  ( ( B e. ( ZZ>= ` A ) /\ C e. NN0 ) -> ( A ..^ ( B + C ) ) = ( ( A ..^ B ) u. ( B ..^ ( B + C ) ) ) )