Users' Mathboxes Mathbox for Mario Carneiro < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  gamcvg2lem Structured version   Unicode version

Theorem gamcvg2lem 27060
Description: Lemma for gamcvg2 27061. (Contributed by Mario Carneiro, 10-Jul-2017.)
Hypotheses
Ref Expression
gamcvg2.f  |-  F  =  ( m  e.  NN  |->  ( ( ( ( m  +  1 )  /  m )  ^c  A )  /  (
( A  /  m
)  +  1 ) ) )
gamcvg2.a  |-  ( ph  ->  A  e.  ( CC 
\  ( ZZ  \  NN ) ) )
gamcvg2.g  |-  G  =  ( m  e.  NN  |->  ( ( A  x.  ( log `  ( ( m  +  1 )  /  m ) ) )  -  ( log `  ( ( A  /  m )  +  1 ) ) ) )
Assertion
Ref Expression
gamcvg2lem  |-  ( ph  ->  ( exp  o.  seq 1 (  +  ,  G ) )  =  seq 1 (  x.  ,  F ) )
Distinct variable groups:    A, m    ph, m
Allowed substitution hints:    F( m)    G( m)

Proof of Theorem gamcvg2lem
Dummy variables  k  n  x are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 addcl 9379 . . . . 5  |-  ( ( n  e.  CC  /\  x  e.  CC )  ->  ( n  +  x
)  e.  CC )
21adantl 466 . . . 4  |-  ( ( ( ph  /\  k  e.  NN )  /\  (
n  e.  CC  /\  x  e.  CC )
)  ->  ( n  +  x )  e.  CC )
3 simpll 753 . . . . 5  |-  ( ( ( ph  /\  k  e.  NN )  /\  n  e.  ( 1 ... k
) )  ->  ph )
4 elfznn 11493 . . . . . 6  |-  ( n  e.  ( 1 ... k )  ->  n  e.  NN )
54adantl 466 . . . . 5  |-  ( ( ( ph  /\  k  e.  NN )  /\  n  e.  ( 1 ... k
) )  ->  n  e.  NN )
6 oveq1 6113 . . . . . . . . . . . 12  |-  ( m  =  n  ->  (
m  +  1 )  =  ( n  + 
1 ) )
7 id 22 . . . . . . . . . . . 12  |-  ( m  =  n  ->  m  =  n )
86, 7oveq12d 6124 . . . . . . . . . . 11  |-  ( m  =  n  ->  (
( m  +  1 )  /  m )  =  ( ( n  +  1 )  /  n ) )
98fveq2d 5710 . . . . . . . . . 10  |-  ( m  =  n  ->  ( log `  ( ( m  +  1 )  /  m ) )  =  ( log `  (
( n  +  1 )  /  n ) ) )
109oveq2d 6122 . . . . . . . . 9  |-  ( m  =  n  ->  ( A  x.  ( log `  ( ( m  + 
1 )  /  m
) ) )  =  ( A  x.  ( log `  ( ( n  +  1 )  /  n ) ) ) )
11 oveq2 6114 . . . . . . . . . . 11  |-  ( m  =  n  ->  ( A  /  m )  =  ( A  /  n
) )
1211oveq1d 6121 . . . . . . . . . 10  |-  ( m  =  n  ->  (
( A  /  m
)  +  1 )  =  ( ( A  /  n )  +  1 ) )
1312fveq2d 5710 . . . . . . . . 9  |-  ( m  =  n  ->  ( log `  ( ( A  /  m )  +  1 ) )  =  ( log `  (
( A  /  n
)  +  1 ) ) )
1410, 13oveq12d 6124 . . . . . . . 8  |-  ( m  =  n  ->  (
( A  x.  ( log `  ( ( m  +  1 )  /  m ) ) )  -  ( log `  (
( A  /  m
)  +  1 ) ) )  =  ( ( A  x.  ( log `  ( ( n  +  1 )  /  n ) ) )  -  ( log `  (
( A  /  n
)  +  1 ) ) ) )
15 gamcvg2.g . . . . . . . 8  |-  G  =  ( m  e.  NN  |->  ( ( A  x.  ( log `  ( ( m  +  1 )  /  m ) ) )  -  ( log `  ( ( A  /  m )  +  1 ) ) ) )
16 ovex 6131 . . . . . . . 8  |-  ( ( A  x.  ( log `  ( ( n  + 
1 )  /  n
) ) )  -  ( log `  ( ( A  /  n )  +  1 ) ) )  e.  _V
1714, 15, 16fvmpt 5789 . . . . . . 7  |-  ( n  e.  NN  ->  ( G `  n )  =  ( ( A  x.  ( log `  (
( n  +  1 )  /  n ) ) )  -  ( log `  ( ( A  /  n )  +  1 ) ) ) )
1817adantl 466 . . . . . 6  |-  ( (
ph  /\  n  e.  NN )  ->  ( G `
 n )  =  ( ( A  x.  ( log `  ( ( n  +  1 )  /  n ) ) )  -  ( log `  ( ( A  /  n )  +  1 ) ) ) )
19 gamcvg2.a . . . . . . . . . 10  |-  ( ph  ->  A  e.  ( CC 
\  ( ZZ  \  NN ) ) )
2019adantr 465 . . . . . . . . 9  |-  ( (
ph  /\  n  e.  NN )  ->  A  e.  ( CC  \  ( ZZ  \  NN ) ) )
2120eldifad 3355 . . . . . . . 8  |-  ( (
ph  /\  n  e.  NN )  ->  A  e.  CC )
22 simpr 461 . . . . . . . . . . . . 13  |-  ( (
ph  /\  n  e.  NN )  ->  n  e.  NN )
2322peano2nnd 10354 . . . . . . . . . . . 12  |-  ( (
ph  /\  n  e.  NN )  ->  ( n  +  1 )  e.  NN )
2423nnrpd 11041 . . . . . . . . . . 11  |-  ( (
ph  /\  n  e.  NN )  ->  ( n  +  1 )  e.  RR+ )
2522nnrpd 11041 . . . . . . . . . . 11  |-  ( (
ph  /\  n  e.  NN )  ->  n  e.  RR+ )
2624, 25rpdivcld 11059 . . . . . . . . . 10  |-  ( (
ph  /\  n  e.  NN )  ->  ( ( n  +  1 )  /  n )  e.  RR+ )
2726relogcld 22087 . . . . . . . . 9  |-  ( (
ph  /\  n  e.  NN )  ->  ( log `  ( ( n  + 
1 )  /  n
) )  e.  RR )
2827recnd 9427 . . . . . . . 8  |-  ( (
ph  /\  n  e.  NN )  ->  ( log `  ( ( n  + 
1 )  /  n
) )  e.  CC )
2921, 28mulcld 9421 . . . . . . 7  |-  ( (
ph  /\  n  e.  NN )  ->  ( A  x.  ( log `  (
( n  +  1 )  /  n ) ) )  e.  CC )
3022nncnd 10353 . . . . . . . . . 10  |-  ( (
ph  /\  n  e.  NN )  ->  n  e.  CC )
3122nnne0d 10381 . . . . . . . . . 10  |-  ( (
ph  /\  n  e.  NN )  ->  n  =/=  0 )
3221, 30, 31divcld 10122 . . . . . . . . 9  |-  ( (
ph  /\  n  e.  NN )  ->  ( A  /  n )  e.  CC )
33 ax-1cn 9355 . . . . . . . . . 10  |-  1  e.  CC
3433a1i 11 . . . . . . . . 9  |-  ( (
ph  /\  n  e.  NN )  ->  1  e.  CC )
3532, 34addcld 9420 . . . . . . . 8  |-  ( (
ph  /\  n  e.  NN )  ->  ( ( A  /  n )  +  1 )  e.  CC )
3620, 22dmgmdivn0 27029 . . . . . . . 8  |-  ( (
ph  /\  n  e.  NN )  ->  ( ( A  /  n )  +  1 )  =/=  0 )
3735, 36logcld 22037 . . . . . . 7  |-  ( (
ph  /\  n  e.  NN )  ->  ( log `  ( ( A  /  n )  +  1 ) )  e.  CC )
3829, 37subcld 9734 . . . . . 6  |-  ( (
ph  /\  n  e.  NN )  ->  ( ( A  x.  ( log `  ( ( n  + 
1 )  /  n
) ) )  -  ( log `  ( ( A  /  n )  +  1 ) ) )  e.  CC )
3918, 38eqeltrd 2517 . . . . 5  |-  ( (
ph  /\  n  e.  NN )  ->  ( G `
 n )  e.  CC )
403, 5, 39syl2anc 661 . . . 4  |-  ( ( ( ph  /\  k  e.  NN )  /\  n  e.  ( 1 ... k
) )  ->  ( G `  n )  e.  CC )
41 simpr 461 . . . . 5  |-  ( (
ph  /\  k  e.  NN )  ->  k  e.  NN )
42 nnuz 10911 . . . . 5  |-  NN  =  ( ZZ>= `  1 )
4341, 42syl6eleq 2533 . . . 4  |-  ( (
ph  /\  k  e.  NN )  ->  k  e.  ( ZZ>= `  1 )
)
44 efadd 13394 . . . . 5  |-  ( ( n  e.  CC  /\  x  e.  CC )  ->  ( exp `  (
n  +  x ) )  =  ( ( exp `  n )  x.  ( exp `  x
) ) )
4544adantl 466 . . . 4  |-  ( ( ( ph  /\  k  e.  NN )  /\  (
n  e.  CC  /\  x  e.  CC )
)  ->  ( exp `  ( n  +  x
) )  =  ( ( exp `  n
)  x.  ( exp `  x ) ) )
46 efsub 13399 . . . . . . . 8  |-  ( ( ( A  x.  ( log `  ( ( n  +  1 )  /  n ) ) )  e.  CC  /\  ( log `  ( ( A  /  n )  +  1 ) )  e.  CC )  ->  ( exp `  ( ( A  x.  ( log `  (
( n  +  1 )  /  n ) ) )  -  ( log `  ( ( A  /  n )  +  1 ) ) ) )  =  ( ( exp `  ( A  x.  ( log `  (
( n  +  1 )  /  n ) ) ) )  / 
( exp `  ( log `  ( ( A  /  n )  +  1 ) ) ) ) )
4729, 37, 46syl2anc 661 . . . . . . 7  |-  ( (
ph  /\  n  e.  NN )  ->  ( exp `  ( ( A  x.  ( log `  ( ( n  +  1 )  /  n ) ) )  -  ( log `  ( ( A  /  n )  +  1 ) ) ) )  =  ( ( exp `  ( A  x.  ( log `  ( ( n  +  1 )  /  n ) ) ) )  /  ( exp `  ( log `  (
( A  /  n
)  +  1 ) ) ) ) )
4830, 34addcld 9420 . . . . . . . . . . 11  |-  ( (
ph  /\  n  e.  NN )  ->  ( n  +  1 )  e.  CC )
4948, 30, 31divcld 10122 . . . . . . . . . 10  |-  ( (
ph  /\  n  e.  NN )  ->  ( ( n  +  1 )  /  n )  e.  CC )
5023nnne0d 10381 . . . . . . . . . . 11  |-  ( (
ph  /\  n  e.  NN )  ->  ( n  +  1 )  =/=  0 )
5148, 30, 50, 31divne0d 10138 . . . . . . . . . 10  |-  ( (
ph  /\  n  e.  NN )  ->  ( ( n  +  1 )  /  n )  =/=  0 )
5249, 51, 21cxpefd 22172 . . . . . . . . 9  |-  ( (
ph  /\  n  e.  NN )  ->  ( ( ( n  +  1 )  /  n )  ^c  A )  =  ( exp `  ( A  x.  ( log `  ( ( n  + 
1 )  /  n
) ) ) ) )
5352eqcomd 2448 . . . . . . . 8  |-  ( (
ph  /\  n  e.  NN )  ->  ( exp `  ( A  x.  ( log `  ( ( n  +  1 )  /  n ) ) ) )  =  ( ( ( n  +  1 )  /  n )  ^c  A ) )
54 eflog 22043 . . . . . . . . 9  |-  ( ( ( ( A  /  n )  +  1 )  e.  CC  /\  ( ( A  /  n )  +  1 )  =/=  0 )  ->  ( exp `  ( log `  ( ( A  /  n )  +  1 ) ) )  =  ( ( A  /  n )  +  1 ) )
5535, 36, 54syl2anc 661 . . . . . . . 8  |-  ( (
ph  /\  n  e.  NN )  ->  ( exp `  ( log `  (
( A  /  n
)  +  1 ) ) )  =  ( ( A  /  n
)  +  1 ) )
5653, 55oveq12d 6124 . . . . . . 7  |-  ( (
ph  /\  n  e.  NN )  ->  ( ( exp `  ( A  x.  ( log `  (
( n  +  1 )  /  n ) ) ) )  / 
( exp `  ( log `  ( ( A  /  n )  +  1 ) ) ) )  =  ( ( ( ( n  + 
1 )  /  n
)  ^c  A )  /  ( ( A  /  n )  +  1 ) ) )
5747, 56eqtrd 2475 . . . . . 6  |-  ( (
ph  /\  n  e.  NN )  ->  ( exp `  ( ( A  x.  ( log `  ( ( n  +  1 )  /  n ) ) )  -  ( log `  ( ( A  /  n )  +  1 ) ) ) )  =  ( ( ( ( n  +  1 )  /  n )  ^c  A )  /  ( ( A  /  n )  +  1 ) ) )
5818fveq2d 5710 . . . . . 6  |-  ( (
ph  /\  n  e.  NN )  ->  ( exp `  ( G `  n
) )  =  ( exp `  ( ( A  x.  ( log `  ( ( n  + 
1 )  /  n
) ) )  -  ( log `  ( ( A  /  n )  +  1 ) ) ) ) )
598oveq1d 6121 . . . . . . . . 9  |-  ( m  =  n  ->  (
( ( m  + 
1 )  /  m
)  ^c  A )  =  ( ( ( n  +  1 )  /  n )  ^c  A ) )
6059, 12oveq12d 6124 . . . . . . . 8  |-  ( m  =  n  ->  (
( ( ( m  +  1 )  /  m )  ^c  A )  /  (
( A  /  m
)  +  1 ) )  =  ( ( ( ( n  + 
1 )  /  n
)  ^c  A )  /  ( ( A  /  n )  +  1 ) ) )
61 gamcvg2.f . . . . . . . 8  |-  F  =  ( m  e.  NN  |->  ( ( ( ( m  +  1 )  /  m )  ^c  A )  /  (
( A  /  m
)  +  1 ) ) )
62 ovex 6131 . . . . . . . 8  |-  ( ( ( ( n  + 
1 )  /  n
)  ^c  A )  /  ( ( A  /  n )  +  1 ) )  e.  _V
6360, 61, 62fvmpt 5789 . . . . . . 7  |-  ( n  e.  NN  ->  ( F `  n )  =  ( ( ( ( n  +  1 )  /  n )  ^c  A )  /  ( ( A  /  n )  +  1 ) ) )
6463adantl 466 . . . . . 6  |-  ( (
ph  /\  n  e.  NN )  ->  ( F `
 n )  =  ( ( ( ( n  +  1 )  /  n )  ^c  A )  /  (
( A  /  n
)  +  1 ) ) )
6557, 58, 643eqtr4d 2485 . . . . 5  |-  ( (
ph  /\  n  e.  NN )  ->  ( exp `  ( G `  n
) )  =  ( F `  n ) )
663, 5, 65syl2anc 661 . . . 4  |-  ( ( ( ph  /\  k  e.  NN )  /\  n  e.  ( 1 ... k
) )  ->  ( exp `  ( G `  n ) )  =  ( F `  n
) )
672, 40, 43, 45, 66seqhomo 11868 . . 3  |-  ( (
ph  /\  k  e.  NN )  ->  ( exp `  (  seq 1
(  +  ,  G
) `  k )
)  =  (  seq 1 (  x.  ,  F ) `  k
) )
6867mpteq2dva 4393 . 2  |-  ( ph  ->  ( k  e.  NN  |->  ( exp `  (  seq 1 (  +  ,  G ) `  k
) ) )  =  ( k  e.  NN  |->  (  seq 1 (  x.  ,  F ) `  k ) ) )
69 eff 13382 . . . 4  |-  exp : CC
--> CC
7069a1i 11 . . 3  |-  ( ph  ->  exp : CC --> CC )
71 1z 10691 . . . . 5  |-  1  e.  ZZ
7271a1i 11 . . . 4  |-  ( ph  ->  1  e.  ZZ )
7342, 72, 39serf 11849 . . 3  |-  ( ph  ->  seq 1 (  +  ,  G ) : NN --> CC )
74 fcompt 5894 . . 3  |-  ( ( exp : CC --> CC  /\  seq 1 (  +  ,  G ) : NN --> CC )  ->  ( exp 
o.  seq 1 (  +  ,  G ) )  =  ( k  e.  NN  |->  ( exp `  (  seq 1 (  +  ,  G ) `  k
) ) ) )
7570, 73, 74syl2anc 661 . 2  |-  ( ph  ->  ( exp  o.  seq 1 (  +  ,  G ) )  =  ( k  e.  NN  |->  ( exp `  (  seq 1 (  +  ,  G ) `  k
) ) ) )
76 seqfn 11833 . . . . 5  |-  ( 1  e.  ZZ  ->  seq 1 (  x.  ,  F )  Fn  ( ZZ>=
`  1 ) )
7771, 76mp1i 12 . . . 4  |-  ( ph  ->  seq 1 (  x.  ,  F )  Fn  ( ZZ>= `  1 )
)
7842fneq2i 5521 . . . 4  |-  (  seq 1 (  x.  ,  F )  Fn  NN  <->  seq 1 (  x.  ,  F )  Fn  ( ZZ>=
`  1 ) )
7977, 78sylibr 212 . . 3  |-  ( ph  ->  seq 1 (  x.  ,  F )  Fn  NN )
80 dffn5 5752 . . 3  |-  (  seq 1 (  x.  ,  F )  Fn  NN  <->  seq 1 (  x.  ,  F )  =  ( k  e.  NN  |->  (  seq 1 (  x.  ,  F ) `  k ) ) )
8179, 80sylib 196 . 2  |-  ( ph  ->  seq 1 (  x.  ,  F )  =  ( k  e.  NN  |->  (  seq 1 (  x.  ,  F ) `  k ) ) )
8268, 75, 813eqtr4d 2485 1  |-  ( ph  ->  ( exp  o.  seq 1 (  +  ,  G ) )  =  seq 1 (  x.  ,  F ) )
Colors of variables: wff setvar class
Syntax hints:    -> wi 4    /\ wa 369    = wceq 1369    e. wcel 1756    =/= wne 2620    \ cdif 3340    e. cmpt 4365    o. ccom 4859    Fn wfn 5428   -->wf 5429   ` cfv 5433  (class class class)co 6106   CCcc 9295   0cc0 9297   1c1 9298    + caddc 9300    x. cmul 9302    - cmin 9610    / cdiv 10008   NNcn 10337   ZZcz 10661   ZZ>=cuz 10876   ...cfz 11452    seqcseq 11821   expce 13362   logclog 22021    ^c ccxp 22022
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1591  ax-4 1602  ax-5 1670  ax-6 1708  ax-7 1728  ax-8 1758  ax-9 1760  ax-10 1775  ax-11 1780  ax-12 1792  ax-13 1943  ax-ext 2423  ax-rep 4418  ax-sep 4428  ax-nul 4436  ax-pow 4485  ax-pr 4546  ax-un 6387  ax-inf2 7862  ax-cnex 9353  ax-resscn 9354  ax-1cn 9355  ax-icn 9356  ax-addcl 9357  ax-addrcl 9358  ax-mulcl 9359  ax-mulrcl 9360  ax-mulcom 9361  ax-addass 9362  ax-mulass 9363  ax-distr 9364  ax-i2m1 9365  ax-1ne0 9366  ax-1rid 9367  ax-rnegex 9368  ax-rrecex 9369  ax-cnre 9370  ax-pre-lttri 9371  ax-pre-lttrn 9372  ax-pre-ltadd 9373  ax-pre-mulgt0 9374  ax-pre-sup 9375  ax-addf 9376  ax-mulf 9377
This theorem depends on definitions:  df-bi 185  df-or 370  df-an 371  df-3or 966  df-3an 967  df-tru 1372  df-fal 1375  df-ex 1587  df-nf 1590  df-sb 1701  df-eu 2257  df-mo 2258  df-clab 2430  df-cleq 2436  df-clel 2439  df-nfc 2577  df-ne 2622  df-nel 2623  df-ral 2735  df-rex 2736  df-reu 2737  df-rmo 2738  df-rab 2739  df-v 2989  df-sbc 3202  df-csb 3304  df-dif 3346  df-un 3348  df-in 3350  df-ss 3357  df-pss 3359  df-nul 3653  df-if 3807  df-pw 3877  df-sn 3893  df-pr 3895  df-tp 3897  df-op 3899  df-uni 4107  df-int 4144  df-iun 4188  df-iin 4189  df-br 4308  df-opab 4366  df-mpt 4367  df-tr 4401  df-eprel 4647  df-id 4651  df-po 4656  df-so 4657  df-fr 4694  df-se 4695  df-we 4696  df-ord 4737  df-on 4738  df-lim 4739  df-suc 4740  df-xp 4861  df-rel 4862  df-cnv 4863  df-co 4864  df-dm 4865  df-rn 4866  df-res 4867  df-ima 4868  df-iota 5396  df-fun 5435  df-fn 5436  df-f 5437  df-f1 5438  df-fo 5439  df-f1o 5440  df-fv 5441  df-isom 5442  df-riota 6067  df-ov 6109  df-oprab 6110  df-mpt2 6111  df-of 6335  df-om 6492  df-1st 6592  df-2nd 6593  df-supp 6706  df-recs 6847  df-rdg 6881  df-1o 6935  df-2o 6936  df-oadd 6939  df-er 7116  df-map 7231  df-pm 7232  df-ixp 7279  df-en 7326  df-dom 7327  df-sdom 7328  df-fin 7329  df-fsupp 7636  df-fi 7676  df-sup 7706  df-oi 7739  df-card 8124  df-cda 8352  df-pnf 9435  df-mnf 9436  df-xr 9437  df-ltxr 9438  df-le 9439  df-sub 9612  df-neg 9613  df-div 10009  df-nn 10338  df-2 10395  df-3 10396  df-4 10397  df-5 10398  df-6 10399  df-7 10400  df-8 10401  df-9 10402  df-10 10403  df-n0 10595  df-z 10662  df-dec 10771  df-uz 10877  df-q 10969  df-rp 11007  df-xneg 11104  df-xadd 11105  df-xmul 11106  df-ioo 11319  df-ioc 11320  df-ico 11321  df-icc 11322  df-fz 11453  df-fzo 11564  df-fl 11657  df-mod 11724  df-seq 11822  df-exp 11881  df-fac 12067  df-bc 12094  df-hash 12119  df-shft 12571  df-cj 12603  df-re 12604  df-im 12605  df-sqr 12739  df-abs 12740  df-limsup 12964  df-clim 12981  df-rlim 12982  df-sum 13179  df-ef 13368  df-sin 13370  df-cos 13371  df-pi 13373  df-struct 14191  df-ndx 14192  df-slot 14193  df-base 14194  df-sets 14195  df-ress 14196  df-plusg 14266  df-mulr 14267  df-starv 14268  df-sca 14269  df-vsca 14270  df-ip 14271  df-tset 14272  df-ple 14273  df-ds 14275  df-unif 14276  df-hom 14277  df-cco 14278  df-rest 14376  df-topn 14377  df-0g 14395  df-gsum 14396  df-topgen 14397  df-pt 14398  df-prds 14401  df-xrs 14455  df-qtop 14460  df-imas 14461  df-xps 14463  df-mre 14539  df-mrc 14540  df-acs 14542  df-mnd 15430  df-submnd 15480  df-mulg 15563  df-cntz 15850  df-cmn 16294  df-psmet 17824  df-xmet 17825  df-met 17826  df-bl 17827  df-mopn 17828  df-fbas 17829  df-fg 17830  df-cnfld 17834  df-top 18518  df-bases 18520  df-topon 18521  df-topsp 18522  df-cld 18638  df-ntr 18639  df-cls 18640  df-nei 18717  df-lp 18755  df-perf 18756  df-cn 18846  df-cnp 18847  df-haus 18934  df-tx 19150  df-hmeo 19343  df-fil 19434  df-fm 19526  df-flim 19527  df-flf 19528  df-xms 19910  df-ms 19911  df-tms 19912  df-cncf 20469  df-limc 21356  df-dv 21357  df-log 22023  df-cxp 22024
This theorem is referenced by:  gamcvg2  27061
  Copyright terms: Public domain W3C validator