Metamath Proof Explorer


Theorem eluzsub

Description: Membership in an earlier upper set of integers. (Contributed by Jeff Madsen, 2-Sep-2009)

Ref Expression
Assertion eluzsub
|- ( ( M e. ZZ /\ K e. ZZ /\ N e. ( ZZ>= ` ( M + K ) ) ) -> ( N - K ) e. ( ZZ>= ` M ) )

Proof

Step Hyp Ref Expression
1 fvoveq1
 |-  ( M = if ( M e. ZZ , M , 0 ) -> ( ZZ>= ` ( M + K ) ) = ( ZZ>= ` ( if ( M e. ZZ , M , 0 ) + K ) ) )
2 1 eleq2d
 |-  ( M = if ( M e. ZZ , M , 0 ) -> ( N e. ( ZZ>= ` ( M + K ) ) <-> N e. ( ZZ>= ` ( if ( M e. ZZ , M , 0 ) + K ) ) ) )
3 fveq2
 |-  ( M = if ( M e. ZZ , M , 0 ) -> ( ZZ>= ` M ) = ( ZZ>= ` if ( M e. ZZ , M , 0 ) ) )
4 3 eleq2d
 |-  ( M = if ( M e. ZZ , M , 0 ) -> ( ( N - K ) e. ( ZZ>= ` M ) <-> ( N - K ) e. ( ZZ>= ` if ( M e. ZZ , M , 0 ) ) ) )
5 2 4 imbi12d
 |-  ( M = if ( M e. ZZ , M , 0 ) -> ( ( N e. ( ZZ>= ` ( M + K ) ) -> ( N - K ) e. ( ZZ>= ` M ) ) <-> ( N e. ( ZZ>= ` ( if ( M e. ZZ , M , 0 ) + K ) ) -> ( N - K ) e. ( ZZ>= ` if ( M e. ZZ , M , 0 ) ) ) ) )
6 oveq2
 |-  ( K = if ( K e. ZZ , K , 0 ) -> ( if ( M e. ZZ , M , 0 ) + K ) = ( if ( M e. ZZ , M , 0 ) + if ( K e. ZZ , K , 0 ) ) )
7 6 fveq2d
 |-  ( K = if ( K e. ZZ , K , 0 ) -> ( ZZ>= ` ( if ( M e. ZZ , M , 0 ) + K ) ) = ( ZZ>= ` ( if ( M e. ZZ , M , 0 ) + if ( K e. ZZ , K , 0 ) ) ) )
8 7 eleq2d
 |-  ( K = if ( K e. ZZ , K , 0 ) -> ( N e. ( ZZ>= ` ( if ( M e. ZZ , M , 0 ) + K ) ) <-> N e. ( ZZ>= ` ( if ( M e. ZZ , M , 0 ) + if ( K e. ZZ , K , 0 ) ) ) ) )
9 oveq2
 |-  ( K = if ( K e. ZZ , K , 0 ) -> ( N - K ) = ( N - if ( K e. ZZ , K , 0 ) ) )
10 9 eleq1d
 |-  ( K = if ( K e. ZZ , K , 0 ) -> ( ( N - K ) e. ( ZZ>= ` if ( M e. ZZ , M , 0 ) ) <-> ( N - if ( K e. ZZ , K , 0 ) ) e. ( ZZ>= ` if ( M e. ZZ , M , 0 ) ) ) )
11 8 10 imbi12d
 |-  ( K = if ( K e. ZZ , K , 0 ) -> ( ( N e. ( ZZ>= ` ( if ( M e. ZZ , M , 0 ) + K ) ) -> ( N - K ) e. ( ZZ>= ` if ( M e. ZZ , M , 0 ) ) ) <-> ( N e. ( ZZ>= ` ( if ( M e. ZZ , M , 0 ) + if ( K e. ZZ , K , 0 ) ) ) -> ( N - if ( K e. ZZ , K , 0 ) ) e. ( ZZ>= ` if ( M e. ZZ , M , 0 ) ) ) ) )
12 0z
 |-  0 e. ZZ
13 12 elimel
 |-  if ( M e. ZZ , M , 0 ) e. ZZ
14 12 elimel
 |-  if ( K e. ZZ , K , 0 ) e. ZZ
15 13 14 eluzsubi
 |-  ( N e. ( ZZ>= ` ( if ( M e. ZZ , M , 0 ) + if ( K e. ZZ , K , 0 ) ) ) -> ( N - if ( K e. ZZ , K , 0 ) ) e. ( ZZ>= ` if ( M e. ZZ , M , 0 ) ) )
16 5 11 15 dedth2h
 |-  ( ( M e. ZZ /\ K e. ZZ ) -> ( N e. ( ZZ>= ` ( M + K ) ) -> ( N - K ) e. ( ZZ>= ` M ) ) )
17 16 3impia
 |-  ( ( M e. ZZ /\ K e. ZZ /\ N e. ( ZZ>= ` ( M + K ) ) ) -> ( N - K ) e. ( ZZ>= ` M ) )