This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: The logarithm of the product of two positive real numbers is the sum of logarithms. Property 2 of Cohen4 p. 361. (Contributed by Stefan O'Rear, 19-Sep-2014) (Revised by AV, 29-May-2020)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | relogbmul | |- ( ( B e. ( CC \ { 0 , 1 } ) /\ ( A e. RR+ /\ C e. RR+ ) ) -> ( B logb ( A x. C ) ) = ( ( B logb A ) + ( B logb C ) ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | relogmul | |- ( ( A e. RR+ /\ C e. RR+ ) -> ( log ` ( A x. C ) ) = ( ( log ` A ) + ( log ` C ) ) ) |
|
| 2 | 1 | adantl | |- ( ( B e. ( CC \ { 0 , 1 } ) /\ ( A e. RR+ /\ C e. RR+ ) ) -> ( log ` ( A x. C ) ) = ( ( log ` A ) + ( log ` C ) ) ) |
| 3 | 2 | oveq1d | |- ( ( B e. ( CC \ { 0 , 1 } ) /\ ( A e. RR+ /\ C e. RR+ ) ) -> ( ( log ` ( A x. C ) ) / ( log ` B ) ) = ( ( ( log ` A ) + ( log ` C ) ) / ( log ` B ) ) ) |
| 4 | relogcl | |- ( A e. RR+ -> ( log ` A ) e. RR ) |
|
| 5 | 4 | recnd | |- ( A e. RR+ -> ( log ` A ) e. CC ) |
| 6 | 5 | adantr | |- ( ( A e. RR+ /\ C e. RR+ ) -> ( log ` A ) e. CC ) |
| 7 | relogcl | |- ( C e. RR+ -> ( log ` C ) e. RR ) |
|
| 8 | 7 | recnd | |- ( C e. RR+ -> ( log ` C ) e. CC ) |
| 9 | 8 | adantl | |- ( ( A e. RR+ /\ C e. RR+ ) -> ( log ` C ) e. CC ) |
| 10 | eldifpr | |- ( B e. ( CC \ { 0 , 1 } ) <-> ( B e. CC /\ B =/= 0 /\ B =/= 1 ) ) |
|
| 11 | 3simpa | |- ( ( B e. CC /\ B =/= 0 /\ B =/= 1 ) -> ( B e. CC /\ B =/= 0 ) ) |
|
| 12 | 10 11 | sylbi | |- ( B e. ( CC \ { 0 , 1 } ) -> ( B e. CC /\ B =/= 0 ) ) |
| 13 | logcl | |- ( ( B e. CC /\ B =/= 0 ) -> ( log ` B ) e. CC ) |
|
| 14 | 12 13 | syl | |- ( B e. ( CC \ { 0 , 1 } ) -> ( log ` B ) e. CC ) |
| 15 | logccne0 | |- ( ( B e. CC /\ B =/= 0 /\ B =/= 1 ) -> ( log ` B ) =/= 0 ) |
|
| 16 | 10 15 | sylbi | |- ( B e. ( CC \ { 0 , 1 } ) -> ( log ` B ) =/= 0 ) |
| 17 | 14 16 | jca | |- ( B e. ( CC \ { 0 , 1 } ) -> ( ( log ` B ) e. CC /\ ( log ` B ) =/= 0 ) ) |
| 18 | 17 | adantr | |- ( ( B e. ( CC \ { 0 , 1 } ) /\ ( A e. RR+ /\ C e. RR+ ) ) -> ( ( log ` B ) e. CC /\ ( log ` B ) =/= 0 ) ) |
| 19 | divdir | |- ( ( ( log ` A ) e. CC /\ ( log ` C ) e. CC /\ ( ( log ` B ) e. CC /\ ( log ` B ) =/= 0 ) ) -> ( ( ( log ` A ) + ( log ` C ) ) / ( log ` B ) ) = ( ( ( log ` A ) / ( log ` B ) ) + ( ( log ` C ) / ( log ` B ) ) ) ) |
|
| 20 | 6 9 18 19 | syl2an23an | |- ( ( B e. ( CC \ { 0 , 1 } ) /\ ( A e. RR+ /\ C e. RR+ ) ) -> ( ( ( log ` A ) + ( log ` C ) ) / ( log ` B ) ) = ( ( ( log ` A ) / ( log ` B ) ) + ( ( log ` C ) / ( log ` B ) ) ) ) |
| 21 | 3 20 | eqtrd | |- ( ( B e. ( CC \ { 0 , 1 } ) /\ ( A e. RR+ /\ C e. RR+ ) ) -> ( ( log ` ( A x. C ) ) / ( log ` B ) ) = ( ( ( log ` A ) / ( log ` B ) ) + ( ( log ` C ) / ( log ` B ) ) ) ) |
| 22 | rpcn | |- ( A e. RR+ -> A e. CC ) |
|
| 23 | rpcn | |- ( C e. RR+ -> C e. CC ) |
|
| 24 | mulcl | |- ( ( A e. CC /\ C e. CC ) -> ( A x. C ) e. CC ) |
|
| 25 | 22 23 24 | syl2an | |- ( ( A e. RR+ /\ C e. RR+ ) -> ( A x. C ) e. CC ) |
| 26 | 22 | adantr | |- ( ( A e. RR+ /\ C e. RR+ ) -> A e. CC ) |
| 27 | 23 | adantl | |- ( ( A e. RR+ /\ C e. RR+ ) -> C e. CC ) |
| 28 | rpne0 | |- ( A e. RR+ -> A =/= 0 ) |
|
| 29 | 28 | adantr | |- ( ( A e. RR+ /\ C e. RR+ ) -> A =/= 0 ) |
| 30 | rpne0 | |- ( C e. RR+ -> C =/= 0 ) |
|
| 31 | 30 | adantl | |- ( ( A e. RR+ /\ C e. RR+ ) -> C =/= 0 ) |
| 32 | 26 27 29 31 | mulne0d | |- ( ( A e. RR+ /\ C e. RR+ ) -> ( A x. C ) =/= 0 ) |
| 33 | eldifsn | |- ( ( A x. C ) e. ( CC \ { 0 } ) <-> ( ( A x. C ) e. CC /\ ( A x. C ) =/= 0 ) ) |
|
| 34 | 25 32 33 | sylanbrc | |- ( ( A e. RR+ /\ C e. RR+ ) -> ( A x. C ) e. ( CC \ { 0 } ) ) |
| 35 | logbval | |- ( ( B e. ( CC \ { 0 , 1 } ) /\ ( A x. C ) e. ( CC \ { 0 } ) ) -> ( B logb ( A x. C ) ) = ( ( log ` ( A x. C ) ) / ( log ` B ) ) ) |
|
| 36 | 34 35 | sylan2 | |- ( ( B e. ( CC \ { 0 , 1 } ) /\ ( A e. RR+ /\ C e. RR+ ) ) -> ( B logb ( A x. C ) ) = ( ( log ` ( A x. C ) ) / ( log ` B ) ) ) |
| 37 | rpcndif0 | |- ( A e. RR+ -> A e. ( CC \ { 0 } ) ) |
|
| 38 | 37 | adantr | |- ( ( A e. RR+ /\ C e. RR+ ) -> A e. ( CC \ { 0 } ) ) |
| 39 | logbval | |- ( ( B e. ( CC \ { 0 , 1 } ) /\ A e. ( CC \ { 0 } ) ) -> ( B logb A ) = ( ( log ` A ) / ( log ` B ) ) ) |
|
| 40 | 38 39 | sylan2 | |- ( ( B e. ( CC \ { 0 , 1 } ) /\ ( A e. RR+ /\ C e. RR+ ) ) -> ( B logb A ) = ( ( log ` A ) / ( log ` B ) ) ) |
| 41 | rpcndif0 | |- ( C e. RR+ -> C e. ( CC \ { 0 } ) ) |
|
| 42 | 41 | adantl | |- ( ( A e. RR+ /\ C e. RR+ ) -> C e. ( CC \ { 0 } ) ) |
| 43 | logbval | |- ( ( B e. ( CC \ { 0 , 1 } ) /\ C e. ( CC \ { 0 } ) ) -> ( B logb C ) = ( ( log ` C ) / ( log ` B ) ) ) |
|
| 44 | 42 43 | sylan2 | |- ( ( B e. ( CC \ { 0 , 1 } ) /\ ( A e. RR+ /\ C e. RR+ ) ) -> ( B logb C ) = ( ( log ` C ) / ( log ` B ) ) ) |
| 45 | 40 44 | oveq12d | |- ( ( B e. ( CC \ { 0 , 1 } ) /\ ( A e. RR+ /\ C e. RR+ ) ) -> ( ( B logb A ) + ( B logb C ) ) = ( ( ( log ` A ) / ( log ` B ) ) + ( ( log ` C ) / ( log ` B ) ) ) ) |
| 46 | 21 36 45 | 3eqtr4d | |- ( ( B e. ( CC \ { 0 , 1 } ) /\ ( A e. RR+ /\ C e. RR+ ) ) -> ( B logb ( A x. C ) ) = ( ( B logb A ) + ( B logb C ) ) ) |