{ localUrl: '../page/log_properties.html', arbitalUrl: 'https://arbital.com/p/log_properties', rawJsonUrl: '../raw/4bz.json', likeableId: '2689', likeableType: 'page', myLikeValue: '0', likeCount: '5', dislikeCount: '0', likeScore: '5', individualLikes: [ 'AlexeiAndreev', 'EricBruylant', 'NateSoares', 'SzymonSlawinski', 'AlexanderGough' ], pageId: 'log_properties', edit: '18', editSummary: '', prevEdit: '17', currentEdit: '18', wasPublished: 'true', type: 'wiki', title: 'Properties of the logarithm', clickbait: '', textLength: '9088', alias: 'log_properties', externalUrl: '', sortChildrenBy: 'likes', hasVote: 'false', voteType: '', votesAnonymous: 'false', editCreatorId: 'AdomHartell', editCreatedAt: '2016-10-21 01:01:11', pageCreatorId: 'NateSoares', pageCreatedAt: '2016-06-15 06:10:54', seeDomainId: '0', editDomainId: 'AlexeiAndreev', submitToDomainId: '0', isAutosave: 'false', isSnapshot: 'false', isLiveEdit: 'true', isMinorEdit: 'false', indirectTeacher: 'false', todoCount: '2', isEditorComment: 'false', isApprovedComment: 'true', isResolved: 'false', snapshotText: '', anchorContext: '', anchorText: '', anchorOffset: '0', mergedInto: '', isDeleted: 'false', viewCount: '179', text: '[summary:\n\n- $\\log_b(x \\cdot y) = \\log_b(x) + \\log_b(y)$ for any $b$, this is the defining characteristic of logarithms.\n- $\\log_b(1) = 0,$ because $\\log_b(1) = \\log_b(1 \\cdot 1) = \\log_b(1) + \\log_b(1).$\n- $\\log_b\\left(\\frac{1}{x}\\right) = -\\log_b(x),$ because $\\log_b(1) = \\log_b\\left(x \\cdot \\frac{1}{x}\\right) = \\log_b(x) + \\log_b\\left(\\frac{1}{x}\\right) = 0.$\n- $\\log_b\\left(\\frac{x}{y}\\right) = \\log_b(x) - \\log_b(y),$ which follows immediately from the above.\n- $\\log_b\\left(x^n\\right) = n \\cdot \\log_b(x),$ because $x^n$ = $\\underbrace{x \\cdot x \\cdot \\ldots x}_{n\\text{ times}}$.\n- $\\log_b\\left(\\sqrt[n]{x}\\right) = \\frac{\\log_b(x)}{n},$ because $\\log_b(x) = \\log_b\\left((\\sqrt[n]{x})^n\\right) = n \\cdot \\log_b(\\sqrt[n]{x}).$\n- For every $f$ that satisfies $f(x \\cdot y) = f(x) + f(y)$ for all $x, y \\in \\mathbb R^+,$ either $f$ sends every input to 0 or there exists some $b$ such that $f(b) = 1,$ in which case we call $f$ $\\log_b.$ Thus, $\\log_b(b) = 1.$\n- $\\log_b(b^n) = n,$ because $\\log_b(x^n) = n \\log_b(x)$ and $\\log_b(b) = 1.$\n]\n\nWith a [45q solid interpretation of logarithms] under our belt, we are now in a position to look at the basic properties of the logarithm and understand what they are saying. The defining [47k characteristic of logarithm functions] is that they are [-real_valued] functions $f$ such that\n\n__Property 1: Multiplying inputs adds outputs.__\n$$\nf(x \\cdot y) = f(x) + f(y) \\tag{1}\n$$\nfor all $x, y \\in$ [positive_reals $\\mathbb R^+$]. This says that whenever the input grows (or shrinks) by a factor of $y$, the output goes up (or down) by only a fixed amount, which depends on $y$. In fact, equation (1) alone tells us quite a bit about the behavior of $f,$ and from it, we can _almost_ guarantee that $f$ is a logarithm function. First, let's see how far we can get using equation (1) all by itself:\n\n---\n\n__Property 2: 1 is mapped to 0.__\n$$\nf(1) = 0. \\tag{2}\n$$\n\nThis says that the amount the output changes if the input grows by a factor of 1 is zero — i.e., the output does not change if the input changes by a factor of 1. This is obvious, as "the input changed by a factor of 1" means "the input did not change."\n\n__Exercise:__ Prove (2) from (1).\n%%hidden(Proof):\n$$f(x) = f(x \\cdot 1) = f(x) + f(1),\\text{ so }f(1) = 0.$$\n%%\n\n---\n\n__Property 3: Reciprocating the input negates the output.__\n$$\nf(x) = -f\\left(\\frac{1}{x}\\right). \\tag{3}\n$$\n\nThis says that the way that growing the input by a factor of $x$ changes the output is exactly the opposite from the way that shrinking the input by a factor of $x$ changes the output. In terms of the "communication cost" interpretation, if doubling (or tripling, or $n$-times-ing) the possibility space increases costs by $c$, then halving (or thirding, or $n$-parts-ing) the space decreases costs by $c.$\n\n__Exercise:__ Prove (3) from (2) and (1).\n%%hidden(Proof):\n$$x \\cdot \\frac{1}{x} = 1,\\text{ so }f(1) = f\\left(x \\cdot \\frac{1}{x}\\right) = f(x) + f\\left(\\frac{1}{x}\\right).$$\n\n$$f(1)=0,\\text{ so }f(x)\\text{ and }f\\left(\\frac{1}{x}\\right)\\text{ must be opposites.}$$\n%%\n\n---\n\n__Property 4: Dividing inputs subtracts outputs.__\n\n$$\nf\\left(\\frac{x}{y}\\right) = f(x) - f(y). \\tag{4}\n$$\n\nThis follows immediately from (1) and (3).\n\n__Exercise:__ Give an interpretation of (4).\n%%hidden(Interpretation):\nThere are at least two good interpretations:\n\n1. $f\\left(x \\cdot \\frac{1}{y}\\right) = f(x) - f(y),$ i.e., shrinking the input by a factor of $y$ is the opposite of growing the input by a factor of $y.$\n2. $f\\left(z \\cdot \\frac{x}{y}\\right) = f(z) + f(x) - f(y),$ i.e., growing the input by a factor of $\\frac{x}{y}$ affects the output just like growing the input by $x$ and then shrinking it by $y.$\n\nTry translating these into the communication cost interpretation if it is not clear why they're true.\n%%\n\n---\n\n__Property 5: Exponentiating the input multiplies the output.__\n\n$$\nf\\left(x^n\\right) = n \\cdot f(x). \\tag{5}\n$$\n\nThis says that multiplying the input by $x$, $n$ times incurs $n$ identical changes to the output. In terms of the communication cost metaphor, this is saying that you can emulate an $x^n$ digit using $n$ different $x$-digits.\n\n__Exercise:__ Prove (5).\n%%hidden(Proof):\nThis is easy to prove when $n \\in \\mathbb N:$\n$$f\\left(x^n\\right) = f(\\underbrace{x \\cdot x \\cdot \\ldots x}_{n\\text{ times}}) = \\underbrace{f(x) + f(x) + \\ldots f(x)}_{n\\text{ times}} = n \\cdot f(x).$$\n\nFor $n \\in \\mathbb Q,$ this is a bit more difficult; we leave it as an exercise to the reader. Hint: Use the proof of (6) below, for $n \\in \\mathbb N,$ to bootstrap up to the case where $n \\in \\mathbb Q.$\n\nFor $n \\in \\mathbb R,$ this is actually _not_ provable from (1) alone; we need an additional assumption (such as [-continuity]) on $f$.\n%%\n\nProperty 5 is actually _false,_ in full generality — it's possible to create a function $f$ that obeys (1), and obeys (5) for $n \\in \\mathbb Q,$ but which exhibits pathological behavior on irrational numbers. For more on this, see [ pathological near-logarithms].\n\nThis is the first place that property (1) fails us: 5 is true for $n \\in \\mathbb Q,$ but if we want to guarantee that it's true for $n \\in \\mathbb R,$ we need $f$ to be [continuity continuous], i.e. we need to ensure that if $f$ follows 5 on the rationals it's not allowed to do anything insane on irrational numbers only.\n\n---\n\n__Property 6: Rooting the input divides the output.__\n\n$$\nf(\\sqrt[n]{x}) = \\frac{f(x)}{n}. \\tag{6}\n$$\n\nThis says that, to change the output one $n$th as much as you would if you multiplied the input by $x$, multiply the input by the $n$th root of $x$. See [44l] for a physical interpretation of this fact.\n\n__Exercise:__ Prove (6).\n%%hidden(Proof):\n$$(\\sqrt[n]{x})^n = x,\\text{ so }f\\left((\\sqrt[n]{x})^n\\right)\\text{ has to equal }f(x).$$\n\n$$f\\left((\\sqrt[n]{x})^n\\right) = n \\cdot f(\\sqrt[n]{x}),\\text{ so }f(\\sqrt[n]{x}) = \\frac{f(x)}{n}.$$\n%%\n\nAs with (5), (6) is always true if $n \\in \\mathbb Q,$ but not necessarily always true if $n \\in \\mathbb R.$ To prove (6) in full generality, we additionally require that $f$ be continuous.\n\n---\n\n__Property 7: The function is either trivial, or sends some input to 1.__\n\n$$\n\\text{Either $f$ sends all inputs to $0$, or there exists a $b \\neq 1$ such that $f(b)=1.$}\\tag{7}\n$$\n\nThis says that either $f$ is very boring (and does nothing regardless of its inputs), or there is some particular factor $b$ such that when the input changes by a factor of $b$, the output changes by exactly $1$. In the communication cost interpretation, this says that if you're measuring communication costs, you've got to pick some unit (such as $b$-digits) with which to measure.\n\n__Exercise:__ Prove (7).\n%%%hidden(Proof):\nSuppose $f$ does not send all inputs to $0$, and let $x$ be an input that $f$ sends to some $y \\neq 0.$ Then $f(\\sqrt[y]{x}) = \\frac{f(x)}{y} = 1.$%%note: You may be wondering, "what if $y$ is negative, or a fraction?" If so, see [ Strange roots]. Short version: $\\sqrt[-3/4]{x}$ is perfectly well-defined.%%\n\n$b$ is $\\sqrt[y]{x}.$ We know that $b \\neq 1$ because $f(b) = 1$ whereas, by (2), $f(1) = 0$.\n%%%\n\n---\n\n__Property 8: If the function is continuous, it is either trivial or a logarithm.__\n\n$$\n\\text{If $f(b)=1$ then } f(b^x) = x. \\tag{8}\n$$\n\nThis property follows immediately from (5). Thus, (8) is always true if $x$ is a [4zq rational], and if $f$ is continuous then it's also true when $x$ is irrational.\n\nProperty (8) states that if $f$ is non-trivial, then it inverts [4ts exponentials] with base $b.$ In other words, $f$ counts the number of $b$-factors in $x$. In other words, $f$ counts how many times you need to multiply $1$ by $b$ to get $x$. In other words, $f = \\log_b$!\n\n---\n\nMany texts take (8) to be the defining characteristic of the logarithm. As we just demonstrated, one can also define logarithms by (1) as [continuity continuous] [trivial_mathematics non-trivial] functions whose outputs grow by a constant (that depends on $y$) whenever their inputs grow by a factor of $y$. All other properties of the logarithm follow from that.\n\nIf you want to remove the "continuous" qualifier, you're still fine as long as you stick to [4zq rational] inputs. If you want to remove the "non-trivial" qualifier, you can interpret the function $z$ that sends everything to zero as [4c8 $\\log_\\infty$]. Allowing $\\log_\\infty$ and restricting ourselves to rational inputs, _every_ function $f$ that satisfies equation (1) is [4f4 isomorphic] to a logarithm function.\n\nIn other words, if you find a function whose output changes by a constant (that depends on $y$) whenever its input grows by a factor of $y$, there is basically only one way it can behave. Furthermore, that function only has one degree of freedom — the choice of $b$ such that $f(b)=1.$ As we will see next, even that degree of freedom is rather paltry: All logarithm functions behave in essentially the same way. As such, if we find any $f$ such that $f(x \\cdot y) = f(x) + f(y)$ (or any physical process well-modeled by such an $f$), then we immediately know quite a bit about how $f$ behaves.\n', metaText: '', isTextLoaded: 'true', isSubscribedToDiscussion: 'false', isSubscribedToUser: 'false', isSubscribedAsMaintainer: 'false', discussionSubscriberCount: '1', maintainerCount: '1', userSubscriberCount: '0', lastVisit: '', hasDraft: 'false', votes: [], voteSummary: 'null', muVoteSummary: '0', voteScaling: '0', currentUserVote: '-2', voteCount: '0', lockedVoteType: '', maxEditEver: '0', redLinkCount: '0', lockedBy: '', lockedUntil: '', nextPageId: '', prevPageId: '', usedAsMastery: 'false', proposalEditNum: '0', permissions: { edit: { has: 'false', reason: 'You don't have domain permission to edit this page' }, proposeEdit: { has: 'true', reason: '' }, delete: { has: 'false', reason: 'You don't have domain permission to delete this page' }, comment: { has: 'false', reason: 'You can't comment in this domain because you are not a member' }, proposeComment: { has: 'true', reason: '' } }, summaries: {}, creatorIds: [ 'NateSoares', 'EricRogstad', 'AdomHartell' ], childIds: [], parentIds: [ 'logarithm' ], commentIds: [ '4ck', '4ms', '4mt', '4wf' ], questionIds: [], tagIds: [ 'b_class_meta_tag' ], relatedIds: [], markIds: [], explanations: [], learnMore: [], requirements: [], subjects: [], lenses: [], lensParentId: '', pathPages: [], learnMoreTaughtMap: {}, learnMoreCoveredMap: {}, learnMoreRequiredMap: {}, editHistory: {}, domainSubmissions: {}, answers: [], answerCount: '0', commentCount: '0', newCommentCount: '0', linkedMarkCount: '0', changeLogs: [ { likeableId: '3621', likeableType: 'changeLog', myLikeValue: '0', likeCount: '1', dislikeCount: '0', likeScore: '1', individualLikes: [], id: '20198', pageId: 'log_properties', userId: 'AdomHartell', edit: '18', type: 'newEdit', createdAt: '2016-10-21 01:01:11', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '19597', pageId: 'log_properties', userId: 'AlexeiAndreev', edit: '0', type: 'deleteTag', createdAt: '2016-09-15 00:02:16', auxPageId: 'work_in_progress_meta_tag', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '19595', pageId: 'log_properties', userId: 'AlexeiAndreev', edit: '0', type: 'newTag', createdAt: '2016-09-15 00:02:11', auxPageId: 'b_class_meta_tag', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '15308', pageId: 'log_properties', userId: 'NateSoares', edit: '17', type: 'newEdit', createdAt: '2016-07-04 19:45:15', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '15094', pageId: 'log_properties', userId: 'NateSoares', edit: '16', type: 'newEdit', createdAt: '2016-07-02 00:06:40', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '2903', likeableType: 'changeLog', myLikeValue: '0', likeCount: '1', dislikeCount: '0', likeScore: '1', individualLikes: [], id: '14992', pageId: 'log_properties', userId: 'NateSoares', edit: '15', type: 'newEdit', createdAt: '2016-06-30 19:45:19', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '14155', pageId: 'log_properties', userId: 'EricRogstad', edit: '14', type: 'newEdit', createdAt: '2016-06-20 22:01:24', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '14154', pageId: 'log_properties', userId: 'EricRogstad', edit: '13', type: 'newEdit', createdAt: '2016-06-20 21:57:46', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '14152', pageId: 'log_properties', userId: 'EricRogstad', edit: '12', type: 'newEdit', createdAt: '2016-06-20 21:43:23', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '14134', pageId: 'log_properties', userId: 'EricRogstad', edit: '11', type: 'newEdit', createdAt: '2016-06-20 20:56:59', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '13405', pageId: 'log_properties', userId: 'NateSoares', edit: '10', type: 'newEdit', createdAt: '2016-06-16 23:09:51', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '13402', pageId: 'log_properties', userId: 'NateSoares', edit: '9', type: 'newEdit', createdAt: '2016-06-16 22:44:37', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '13086', pageId: 'log_properties', userId: 'NateSoares', edit: '8', type: 'newEdit', createdAt: '2016-06-15 15:39:12', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '13082', pageId: 'log_properties', userId: 'NateSoares', edit: '7', type: 'newEdit', createdAt: '2016-06-15 15:27:22', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '12921', pageId: 'log_properties', userId: 'NateSoares', edit: '6', type: 'newEdit', createdAt: '2016-06-15 06:49:00', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '12915', pageId: 'log_properties', userId: 'NateSoares', edit: '0', type: 'newAlias', createdAt: '2016-06-15 06:28:13', auxPageId: '', oldSettingsValue: '4bz', newSettingsValue: 'log_properties' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '12914', pageId: 'log_properties', userId: 'NateSoares', edit: '5', type: 'newEdit', createdAt: '2016-06-15 06:21:07', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '12908', pageId: 'log_properties', userId: 'NateSoares', edit: '4', type: 'newEdit', createdAt: '2016-06-15 06:16:10', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '12907', pageId: 'log_properties', userId: 'NateSoares', edit: '3', type: 'newEdit', createdAt: '2016-06-15 06:13:39', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '12906', pageId: 'log_properties', userId: 'NateSoares', edit: '2', type: 'newEdit', createdAt: '2016-06-15 06:13:16', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '12905', pageId: 'log_properties', userId: 'NateSoares', edit: '1', type: 'newEdit', createdAt: '2016-06-15 06:10:54', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '12902', pageId: 'log_properties', userId: 'NateSoares', edit: '1', type: 'newTag', createdAt: '2016-06-15 06:10:52', auxPageId: 'work_in_progress_meta_tag', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '12901', pageId: 'log_properties', userId: 'NateSoares', edit: '1', type: 'newParent', createdAt: '2016-06-15 06:10:45', auxPageId: 'logarithm', oldSettingsValue: '', newSettingsValue: '' } ], feedSubmissions: [], searchStrings: {}, hasChildren: 'false', hasParents: 'true', redAliases: {}, improvementTagIds: [], nonMetaTagIds: [], todos: [], slowDownMap: 'null', speedUpMap: 'null', arcPageIds: 'null', contentRequests: {} }