This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Closure properties of the recursive sequence builder. (Contributed by Mario Carneiro, 2-Jul-2013) (Revised by Mario Carneiro, 27-May-2014)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | seqcl2.1 | |- ( ph -> ( F ` M ) e. C ) |
|
| seqcl2.2 | |- ( ( ph /\ ( x e. C /\ y e. D ) ) -> ( x .+ y ) e. C ) |
||
| seqcl2.3 | |- ( ph -> N e. ( ZZ>= ` M ) ) |
||
| seqcl2.4 | |- ( ( ph /\ x e. ( ( M + 1 ) ... N ) ) -> ( F ` x ) e. D ) |
||
| Assertion | seqcl2 | |- ( ph -> ( seq M ( .+ , F ) ` N ) e. C ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | seqcl2.1 | |- ( ph -> ( F ` M ) e. C ) |
|
| 2 | seqcl2.2 | |- ( ( ph /\ ( x e. C /\ y e. D ) ) -> ( x .+ y ) e. C ) |
|
| 3 | seqcl2.3 | |- ( ph -> N e. ( ZZ>= ` M ) ) |
|
| 4 | seqcl2.4 | |- ( ( ph /\ x e. ( ( M + 1 ) ... N ) ) -> ( F ` x ) e. D ) |
|
| 5 | eluzfz2 | |- ( N e. ( ZZ>= ` M ) -> N e. ( M ... N ) ) |
|
| 6 | 3 5 | syl | |- ( ph -> N e. ( M ... N ) ) |
| 7 | eleq1 | |- ( x = M -> ( x e. ( M ... N ) <-> M e. ( M ... N ) ) ) |
|
| 8 | fveq2 | |- ( x = M -> ( seq M ( .+ , F ) ` x ) = ( seq M ( .+ , F ) ` M ) ) |
|
| 9 | 8 | eleq1d | |- ( x = M -> ( ( seq M ( .+ , F ) ` x ) e. C <-> ( seq M ( .+ , F ) ` M ) e. C ) ) |
| 10 | 7 9 | imbi12d | |- ( x = M -> ( ( x e. ( M ... N ) -> ( seq M ( .+ , F ) ` x ) e. C ) <-> ( M e. ( M ... N ) -> ( seq M ( .+ , F ) ` M ) e. C ) ) ) |
| 11 | 10 | imbi2d | |- ( x = M -> ( ( ph -> ( x e. ( M ... N ) -> ( seq M ( .+ , F ) ` x ) e. C ) ) <-> ( ph -> ( M e. ( M ... N ) -> ( seq M ( .+ , F ) ` M ) e. C ) ) ) ) |
| 12 | eleq1 | |- ( x = n -> ( x e. ( M ... N ) <-> n e. ( M ... N ) ) ) |
|
| 13 | fveq2 | |- ( x = n -> ( seq M ( .+ , F ) ` x ) = ( seq M ( .+ , F ) ` n ) ) |
|
| 14 | 13 | eleq1d | |- ( x = n -> ( ( seq M ( .+ , F ) ` x ) e. C <-> ( seq M ( .+ , F ) ` n ) e. C ) ) |
| 15 | 12 14 | imbi12d | |- ( x = n -> ( ( x e. ( M ... N ) -> ( seq M ( .+ , F ) ` x ) e. C ) <-> ( n e. ( M ... N ) -> ( seq M ( .+ , F ) ` n ) e. C ) ) ) |
| 16 | 15 | imbi2d | |- ( x = n -> ( ( ph -> ( x e. ( M ... N ) -> ( seq M ( .+ , F ) ` x ) e. C ) ) <-> ( ph -> ( n e. ( M ... N ) -> ( seq M ( .+ , F ) ` n ) e. C ) ) ) ) |
| 17 | eleq1 | |- ( x = ( n + 1 ) -> ( x e. ( M ... N ) <-> ( n + 1 ) e. ( M ... N ) ) ) |
|
| 18 | fveq2 | |- ( x = ( n + 1 ) -> ( seq M ( .+ , F ) ` x ) = ( seq M ( .+ , F ) ` ( n + 1 ) ) ) |
|
| 19 | 18 | eleq1d | |- ( x = ( n + 1 ) -> ( ( seq M ( .+ , F ) ` x ) e. C <-> ( seq M ( .+ , F ) ` ( n + 1 ) ) e. C ) ) |
| 20 | 17 19 | imbi12d | |- ( x = ( n + 1 ) -> ( ( x e. ( M ... N ) -> ( seq M ( .+ , F ) ` x ) e. C ) <-> ( ( n + 1 ) e. ( M ... N ) -> ( seq M ( .+ , F ) ` ( n + 1 ) ) e. C ) ) ) |
| 21 | 20 | imbi2d | |- ( x = ( n + 1 ) -> ( ( ph -> ( x e. ( M ... N ) -> ( seq M ( .+ , F ) ` x ) e. C ) ) <-> ( ph -> ( ( n + 1 ) e. ( M ... N ) -> ( seq M ( .+ , F ) ` ( n + 1 ) ) e. C ) ) ) ) |
| 22 | eleq1 | |- ( x = N -> ( x e. ( M ... N ) <-> N e. ( M ... N ) ) ) |
|
| 23 | fveq2 | |- ( x = N -> ( seq M ( .+ , F ) ` x ) = ( seq M ( .+ , F ) ` N ) ) |
|
| 24 | 23 | eleq1d | |- ( x = N -> ( ( seq M ( .+ , F ) ` x ) e. C <-> ( seq M ( .+ , F ) ` N ) e. C ) ) |
| 25 | 22 24 | imbi12d | |- ( x = N -> ( ( x e. ( M ... N ) -> ( seq M ( .+ , F ) ` x ) e. C ) <-> ( N e. ( M ... N ) -> ( seq M ( .+ , F ) ` N ) e. C ) ) ) |
| 26 | 25 | imbi2d | |- ( x = N -> ( ( ph -> ( x e. ( M ... N ) -> ( seq M ( .+ , F ) ` x ) e. C ) ) <-> ( ph -> ( N e. ( M ... N ) -> ( seq M ( .+ , F ) ` N ) e. C ) ) ) ) |
| 27 | seq1 | |- ( M e. ZZ -> ( seq M ( .+ , F ) ` M ) = ( F ` M ) ) |
|
| 28 | 27 | eleq1d | |- ( M e. ZZ -> ( ( seq M ( .+ , F ) ` M ) e. C <-> ( F ` M ) e. C ) ) |
| 29 | 1 28 | imbitrrid | |- ( M e. ZZ -> ( ph -> ( seq M ( .+ , F ) ` M ) e. C ) ) |
| 30 | 29 | a1dd | |- ( M e. ZZ -> ( ph -> ( M e. ( M ... N ) -> ( seq M ( .+ , F ) ` M ) e. C ) ) ) |
| 31 | peano2fzr | |- ( ( n e. ( ZZ>= ` M ) /\ ( n + 1 ) e. ( M ... N ) ) -> n e. ( M ... N ) ) |
|
| 32 | 31 | adantl | |- ( ( ph /\ ( n e. ( ZZ>= ` M ) /\ ( n + 1 ) e. ( M ... N ) ) ) -> n e. ( M ... N ) ) |
| 33 | 32 | expr | |- ( ( ph /\ n e. ( ZZ>= ` M ) ) -> ( ( n + 1 ) e. ( M ... N ) -> n e. ( M ... N ) ) ) |
| 34 | 33 | imim1d | |- ( ( ph /\ n e. ( ZZ>= ` M ) ) -> ( ( n e. ( M ... N ) -> ( seq M ( .+ , F ) ` n ) e. C ) -> ( ( n + 1 ) e. ( M ... N ) -> ( seq M ( .+ , F ) ` n ) e. C ) ) ) |
| 35 | fveq2 | |- ( x = ( n + 1 ) -> ( F ` x ) = ( F ` ( n + 1 ) ) ) |
|
| 36 | 35 | eleq1d | |- ( x = ( n + 1 ) -> ( ( F ` x ) e. D <-> ( F ` ( n + 1 ) ) e. D ) ) |
| 37 | 4 | ralrimiva | |- ( ph -> A. x e. ( ( M + 1 ) ... N ) ( F ` x ) e. D ) |
| 38 | 37 | adantr | |- ( ( ph /\ ( n e. ( ZZ>= ` M ) /\ ( n + 1 ) e. ( M ... N ) ) ) -> A. x e. ( ( M + 1 ) ... N ) ( F ` x ) e. D ) |
| 39 | eluzp1p1 | |- ( n e. ( ZZ>= ` M ) -> ( n + 1 ) e. ( ZZ>= ` ( M + 1 ) ) ) |
|
| 40 | 39 | ad2antrl | |- ( ( ph /\ ( n e. ( ZZ>= ` M ) /\ ( n + 1 ) e. ( M ... N ) ) ) -> ( n + 1 ) e. ( ZZ>= ` ( M + 1 ) ) ) |
| 41 | elfzuz3 | |- ( ( n + 1 ) e. ( M ... N ) -> N e. ( ZZ>= ` ( n + 1 ) ) ) |
|
| 42 | 41 | ad2antll | |- ( ( ph /\ ( n e. ( ZZ>= ` M ) /\ ( n + 1 ) e. ( M ... N ) ) ) -> N e. ( ZZ>= ` ( n + 1 ) ) ) |
| 43 | elfzuzb | |- ( ( n + 1 ) e. ( ( M + 1 ) ... N ) <-> ( ( n + 1 ) e. ( ZZ>= ` ( M + 1 ) ) /\ N e. ( ZZ>= ` ( n + 1 ) ) ) ) |
|
| 44 | 40 42 43 | sylanbrc | |- ( ( ph /\ ( n e. ( ZZ>= ` M ) /\ ( n + 1 ) e. ( M ... N ) ) ) -> ( n + 1 ) e. ( ( M + 1 ) ... N ) ) |
| 45 | 36 38 44 | rspcdva | |- ( ( ph /\ ( n e. ( ZZ>= ` M ) /\ ( n + 1 ) e. ( M ... N ) ) ) -> ( F ` ( n + 1 ) ) e. D ) |
| 46 | 2 | caovclg | |- ( ( ph /\ ( ( seq M ( .+ , F ) ` n ) e. C /\ ( F ` ( n + 1 ) ) e. D ) ) -> ( ( seq M ( .+ , F ) ` n ) .+ ( F ` ( n + 1 ) ) ) e. C ) |
| 47 | 46 | ex | |- ( ph -> ( ( ( seq M ( .+ , F ) ` n ) e. C /\ ( F ` ( n + 1 ) ) e. D ) -> ( ( seq M ( .+ , F ) ` n ) .+ ( F ` ( n + 1 ) ) ) e. C ) ) |
| 48 | 47 | adantr | |- ( ( ph /\ ( n e. ( ZZ>= ` M ) /\ ( n + 1 ) e. ( M ... N ) ) ) -> ( ( ( seq M ( .+ , F ) ` n ) e. C /\ ( F ` ( n + 1 ) ) e. D ) -> ( ( seq M ( .+ , F ) ` n ) .+ ( F ` ( n + 1 ) ) ) e. C ) ) |
| 49 | 45 48 | mpan2d | |- ( ( ph /\ ( n e. ( ZZ>= ` M ) /\ ( n + 1 ) e. ( M ... N ) ) ) -> ( ( seq M ( .+ , F ) ` n ) e. C -> ( ( seq M ( .+ , F ) ` n ) .+ ( F ` ( n + 1 ) ) ) e. C ) ) |
| 50 | seqp1 | |- ( n e. ( ZZ>= ` M ) -> ( seq M ( .+ , F ) ` ( n + 1 ) ) = ( ( seq M ( .+ , F ) ` n ) .+ ( F ` ( n + 1 ) ) ) ) |
|
| 51 | 50 | ad2antrl | |- ( ( ph /\ ( n e. ( ZZ>= ` M ) /\ ( n + 1 ) e. ( M ... N ) ) ) -> ( seq M ( .+ , F ) ` ( n + 1 ) ) = ( ( seq M ( .+ , F ) ` n ) .+ ( F ` ( n + 1 ) ) ) ) |
| 52 | 51 | eleq1d | |- ( ( ph /\ ( n e. ( ZZ>= ` M ) /\ ( n + 1 ) e. ( M ... N ) ) ) -> ( ( seq M ( .+ , F ) ` ( n + 1 ) ) e. C <-> ( ( seq M ( .+ , F ) ` n ) .+ ( F ` ( n + 1 ) ) ) e. C ) ) |
| 53 | 49 52 | sylibrd | |- ( ( ph /\ ( n e. ( ZZ>= ` M ) /\ ( n + 1 ) e. ( M ... N ) ) ) -> ( ( seq M ( .+ , F ) ` n ) e. C -> ( seq M ( .+ , F ) ` ( n + 1 ) ) e. C ) ) |
| 54 | 34 53 | animpimp2impd | |- ( n e. ( ZZ>= ` M ) -> ( ( ph -> ( n e. ( M ... N ) -> ( seq M ( .+ , F ) ` n ) e. C ) ) -> ( ph -> ( ( n + 1 ) e. ( M ... N ) -> ( seq M ( .+ , F ) ` ( n + 1 ) ) e. C ) ) ) ) |
| 55 | 11 16 21 26 30 54 | uzind4 | |- ( N e. ( ZZ>= ` M ) -> ( ph -> ( N e. ( M ... N ) -> ( seq M ( .+ , F ) ` N ) e. C ) ) ) |
| 56 | 3 55 | mpcom | |- ( ph -> ( N e. ( M ... N ) -> ( seq M ( .+ , F ) ` N ) e. C ) ) |
| 57 | 6 56 | mpd | |- ( ph -> ( seq M ( .+ , F ) ` N ) e. C ) |