The definition of the logarithm

Ivan Cnop
icnop@vub.ac.be

Natural logarithm

Definition

ln[
        x_] := (∫_1^x) (1/t) \[DifferentialD]t

Animate values

<< Graphics`FilledPlot`

Do[FilledPlot[{0, 1/x, ln[x]},{x, 1, b}
,AspectRatio -> Automatic
	,PlotRange -> {{0, 12}, {0, 3}}
	,Fills  ->  {{{1, 2}, Hue[0]}}
	,Curves  ->  Front]
,{b, 1.5, 10,  .5}]

For  x  < 1 ,  its value is negative since the area is lying over a wrongly oriented  from  1  to   x   interval :

Do[FilledPlot[{0, 1/x, ln[x]},{x, a, 1}
,AspectRatio -> Automatic
	,PlotRange -> {{0, 2}, {-3, 3}}
	,Fills  ->  {{{1, 2}, Hue[0]}}
	,Curves  ->  Front,Ticks -> {{0, 1, 2}, Automatic}]
,{a,  .95,  .1, - .05}]

Numeric values

ln[11.2]

ln[ .65]

In Mathematica notation:

Log[ .65]

Exact values in Mathematica are kept symbolic:

Log[4]

ln[4]

ln[4. ]

And obvious rules are not applied

ln[4 c]

The derivative

ln'[x] /; {Im[x] = 0, x > 0}

D[ln[x], x]

((∂ln(x))/(∂x))

Rules

Obvious rules are not applied since the software cannot guess the intentions of the user

\(\(\(
\)\(ln[4\ c]\)\)\)

Log[x/y]

But the user can decide whatever rules are to be applied

rules = {Log[x_ y_] -> Log[x] + Log[y], 
        Log[x_/y_] -> Log[x] - Log[y], 
        Log[1/y_] -> -Log[y]}

//. will apply these rules until the expression is stable

Log[x 4/y] //. rules

This is the basis of rule-based programming

Many developments in artificial intelligence use this programming style.

Proofs in Mathematica use rules

Let us check if

(({{k + m}, {k}})) (({{r}, {k + m}}))==(({{r}, {m}})) (({{r - m}, {k}}))

FullSimplify[
      Binomial[m + k, k] Binomial[r, m + k] ==  
        Binomial[r, m] Binomial[r - m, k]]

The problem is that this is not convincing since we do not know what rules were applied