{ localUrl: '../page/codomain_vs_image.html', arbitalUrl: 'https://arbital.com/p/codomain_vs_image', rawJsonUrl: '../raw/3lv.json', likeableId: '2497', likeableType: 'page', myLikeValue: '0', likeCount: '4', dislikeCount: '0', likeScore: '4', individualLikes: [ 'EricBruylant', 'JaimeSevillaMolina', 'NateSoares', 'EricRogstad' ], pageId: 'codomain_vs_image', edit: '6', editSummary: '', prevEdit: '5', currentEdit: '6', wasPublished: 'true', type: 'wiki', title: 'Codomain vs image', clickbait: '', textLength: '2349', alias: 'codomain_vs_image', externalUrl: '', sortChildrenBy: 'likes', hasVote: 'false', voteType: '', votesAnonymous: 'false', editCreatorId: 'NateSoares', editCreatedAt: '2016-06-10 16:46:07', pageCreatorId: 'NateSoares', pageCreatedAt: '2016-05-14 01:37:55', seeDomainId: '0', editDomainId: 'AlexeiAndreev', submitToDomainId: '0', isAutosave: 'false', isSnapshot: 'false', isLiveEdit: 'true', isMinorEdit: 'false', indirectTeacher: 'false', todoCount: '0', isEditorComment: 'false', isApprovedComment: 'true', isResolved: 'false', snapshotText: '', anchorContext: '', anchorText: '', anchorOffset: '0', mergedInto: '', isDeleted: 'false', viewCount: '85', text: '[summary:It is useful to distinguish codomain from image both (a) when the type of thing that the function produces is simple to describe, but the specific objects produced are complicated and hard to identify; and (b) when talking about (or making use of) a collection of functions from a set $X$ to a set $Y$, many of which have an image which is a subset of $Y$.]\n\nA function $f : X \\to Y$ with [3js domain] $X$ and [3lg codomain] $Y$ cannot necessarily produce all values in $Y$. For example, consider the function that takes a [real_number real number] and squares it. We could say that this function has codomain $\\mathbb R$, because it produces a real number, even though its image is the set of non-negative real numbers.\n\n![Domain, Codomain, and Image](http://i.imgur.com/EHBsE1C.png)\n\nIf $f$ maps $X$ to a subset $I$ of $Y$, why not just say that its codomain is $I$ and do away with the distinction between codomain and image? There are at least two cases where the distinction is useful.\n\n1. It is useful to distinguish codomain from image in cases where the _type of thing_ that the function produces is easy to specify, but the _specific values_ are hard to calculate. Consider, for instance, the [43x Ackermann function]. It definitely produces numbers (i.e. its codomain is $\\mathbb N$), but it's not easy to figure out what numbers (exactly) it produces. When talking about what sort of outputs to expect from the Ackermann function, the natural answer is "a number," rather than "either 1 through 7, 9, 11, 13, 29, 61, 125, 65533, $2^{65536} − 3$, or some other ungodly large numbers that I lack the resources to calculate." For this purpose, the codomain can be thought of as a natural/simple boundary drawn around a complex image.\n\n2. Cases where we're considering a set of all functions that map into a certain set. For example, if we're discussing all possible functions from the [natural_number natural numbers] to the set $\\{0, 1\\},$ we want to be able to talk about "functions with codomain $\\{0, 1\\}$" even if some of those functions are things like "always return 0" (which have an image smaller than $\\{0, 1\\}$). For this purpose, the codomain can be thought of as a context-dependent tool that's useful when considering (or making use of) a bunch of different functions that are all producing objects of the same type.', 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: 'true', 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' ], childIds: [], parentIds: [ 'function', 'function_codomain', 'function_image' ], commentIds: [ '3m2' ], questionIds: [], tagIds: [ 'needs_clickbait_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: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '17150', pageId: 'codomain_vs_image', userId: 'EricBruylant', edit: '0', type: 'newTag', createdAt: '2016-07-19 02:20:35', auxPageId: 'needs_clickbait_meta_tag', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '12817', pageId: 'codomain_vs_image', userId: 'PatrickStevens', edit: '6', type: 'newRequiredBy', createdAt: '2016-06-14 22:17:25', auxPageId: 'surjective_function', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '12340', pageId: 'codomain_vs_image', userId: 'NateSoares', edit: '6', type: 'newEdit', createdAt: '2016-06-10 16:46:07', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '10338', pageId: 'codomain_vs_image', userId: 'EricRogstad', edit: '5', type: 'newEdit', createdAt: '2016-05-14 16:51:27', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '10328', pageId: 'codomain_vs_image', userId: 'NateSoares', edit: '4', type: 'newEdit', createdAt: '2016-05-14 15:20:02', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '10326', pageId: 'codomain_vs_image', userId: 'NateSoares', edit: '3', type: 'newEdit', createdAt: '2016-05-14 05:52:34', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '10309', pageId: 'codomain_vs_image', userId: 'NateSoares', edit: '2', type: 'newEdit', createdAt: '2016-05-14 04:35:04', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '10302', pageId: 'codomain_vs_image', userId: 'NateSoares', edit: '1', type: 'newEdit', createdAt: '2016-05-14 01:37:55', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '10298', pageId: 'codomain_vs_image', userId: 'NateSoares', edit: '1', type: 'newParent', createdAt: '2016-05-14 01:13:01', auxPageId: 'function', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '10297', pageId: 'codomain_vs_image', userId: 'NateSoares', edit: '1', type: 'newParent', createdAt: '2016-05-14 01:12:46', auxPageId: 'function_codomain', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '10296', pageId: 'codomain_vs_image', userId: 'NateSoares', edit: '1', type: 'newParent', createdAt: '2016-05-14 01:03:38', auxPageId: 'function_image', oldSettingsValue: '', newSettingsValue: '' } ], feedSubmissions: [], searchStrings: {}, hasChildren: 'false', hasParents: 'true', redAliases: {}, improvementTagIds: [], nonMetaTagIds: [], todos: [], slowDownMap: 'null', speedUpMap: 'null', arcPageIds: 'null', contentRequests: {} }