{ localUrl: '../page/object_identity_via_interactions.html', arbitalUrl: 'https://arbital.com/p/object_identity_via_interactions', rawJsonUrl: '../raw/5zt.json', likeableId: '0', likeableType: 'page', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], pageId: 'object_identity_via_interactions', edit: '6', editSummary: '', prevEdit: '5', currentEdit: '6', wasPublished: 'true', type: 'wiki', title: 'Object identity via interactions', clickbait: 'If we think of objects as opaque "black boxes", how can we tell whether two objects are different? By looking at how they interact with other objects!', textLength: '4059', alias: 'object_identity_via_interactions', externalUrl: '', sortChildrenBy: 'likes', hasVote: 'false', voteType: '', votesAnonymous: 'false', editCreatorId: 'PatrickStevens', editCreatedAt: '2016-09-12 19:00:55', pageCreatorId: 'PatrickStevens', pageCreatedAt: '2016-08-25 09:37:18', seeDomainId: '0', editDomainId: 'AlexeiAndreev', submitToDomainId: '0', isAutosave: 'false', isSnapshot: 'false', isLiveEdit: 'true', isMinorEdit: 'false', indirectTeacher: 'false', todoCount: '6', isEditorComment: 'false', isApprovedComment: 'true', isResolved: 'false', snapshotText: '', anchorContext: '', anchorText: '', anchorOffset: '0', mergedInto: '', isDeleted: 'false', viewCount: '1860', text: '[summary: Central to the mindset of category theory is the idea that we don't really care what an object is; we only care about the interactions between them. But if we don't care what an object is, how can we tell even the most basic properties of the objects? For instance, how can we even tell two objects apart? But we *can* do it, and we do it by looking at the interactions with *other* objects.]\n\nCentral to the mindset of category theory is the idea that we don't really care what an object is; we only care about the interactions between them. But if we don't care what an object is, how can we tell even the most basic properties of the objects? For instance, how can we even tell two objects apart? But we *can* do it, and we do it by looking at the interactions with *other* objects.\n\n# How to tell sets apart\n\nIf we're allowed to look at maps between sets, but not at the structure of the sets themselves, how can we tell whether two sets are the same?\nWe aren't allowed to look at the elements of the set directly, so it would be very optimistic to hope to do better than telling the sets apart "up to isomorphism"; indeed, it turns out not to be possible to tell whether two sets are literally identical without looking at their elements.\n\nBut how about telling whether there is a [499 bijection] between two sets or not? That is the next best thing, because a bijection between the sets would tell us that they "behave the same in all reasonable ways".\n\nIt turns out we can do this!\nLet $A$ and $B$ be two sets; we want to tell if they're different or not.\n\nLet's make a clever choice: we'll pick a kind of "anchor" set, such that the maps involving $A$, $B$ and the "anchor" set are enough to determine whether or not $A$ and $B$ are the same.\nIt will turn out that $\\{1\\}$ works.\n\nConsider all possible maps $\\{1\\} \\to A$ and $\\{1\\} \\to B$.\nA map from $\\{1\\}$ to $A$ is just a function $f$ which takes the input value $1$ (there's no choice about that) and returns a value in $A$.\nSo we can think of it as being "a mappy way of specifying an element of $A$": for every element of $A$, there is one of these functions, while every one of these functions denotes an element of $A$.\n\nSo $A$ is isomorphic to this collection of maps, and the key thing is that we don't need to know about $A$'s elements to say this!\nIf we only have access to the maps and we know nothing about the internal structure of $A$, we can still say $A$ is isomorphic to the set of all the maps from $\\{1\\}$ to $A$.\n\n%%hidden(Example):\nLet $A = \\{ 5, 6 \\}$.\n\nThen the functions $\\{1\\} \\to A$ are precisely the two following:\n\n- $f: 1 \\mapsto 5$;\n- $g: 1 \\mapsto 6$.\n\nSo we have the "mappy" way of viewing $5 \\in A$: namely, $f$.\nSimilarly, we have the "mappy" way of viewing $6 \\in A$: namely, $g$.\n\nAnd $A$ is isomorphic to the set $\\{ f, g \\}$.\nSo we've specified $A$ up to isomorphism without having to look at its elements!\n%%\n\nGiven access to the maps, then, we have worked out what $A$ is (up to isomorphism, which is the best we can do if we're not allowed to look into the internal structure of $A$); and we can similarly work out what $B$ is by looking at the maps $\\{1\\} \\to B$.\n\n[todo: another example, using f: \\{2\\} \\to A as "pair from A"]\n\n## Less structure\n\nThat previous construction was rather contrived, and it doesn't seem at all practical.\n\n[todo: practical example]\n\n[todo: example in Set, where there is a separator: {1}, and a coseparator: {0,1}. Don't define these words, or if we do, do it in passing. Remember to note that this doesn't pick out the set uniquely, but it *does* pick it out up to isomorphism. Often we only care about things up to isomorphism; explain this]\n\n[todo: example in Top, where there is a separator {1}, and a coseparator: the closed interval 0,1. This is a nontrivial fact, and it is known as Urysonâ€™s Lemma. ]\n\n[todo: example in Groups, where Z is a separator]\n\n[todo: "the entire category" together makes a coseparating class, so we can tell objects apart if we are given the freedom to look at every other object]', 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: [ 'PatrickStevens' ], childIds: [], parentIds: [ 'category_theory' ], commentIds: [], questionIds: [], tagIds: [ 'start_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: '19551', pageId: 'object_identity_via_interactions', userId: 'PatrickStevens', edit: '6', type: 'newEdit', createdAt: '2016-09-12 19:00:55', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '19391', pageId: 'object_identity_via_interactions', userId: 'EricRogstad', edit: '0', type: 'newTag', createdAt: '2016-08-29 10:56:12', auxPageId: 'start_meta_tag', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '19390', pageId: 'object_identity_via_interactions', userId: 'EricRogstad', edit: '0', type: 'deleteTag', createdAt: '2016-08-29 10:56:06', auxPageId: 'stub_meta_tag', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '3472', likeableType: 'changeLog', myLikeValue: '0', likeCount: '1', dislikeCount: '0', likeScore: '1', individualLikes: [], id: '19369', pageId: 'object_identity_via_interactions', userId: 'PatrickStevens', edit: '5', type: 'newEdit', createdAt: '2016-08-28 21:12:29', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '19166', pageId: 'object_identity_via_interactions', userId: 'PatrickStevens', edit: '4', type: 'newEdit', createdAt: '2016-08-26 13:20:40', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '19139', pageId: 'object_identity_via_interactions', userId: 'PatrickStevens', edit: '3', type: 'newEdit', createdAt: '2016-08-25 13:57:54', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '19134', pageId: 'object_identity_via_interactions', userId: 'PatrickStevens', edit: '2', type: 'newEdit', createdAt: '2016-08-25 09:37:50', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '19133', pageId: 'object_identity_via_interactions', userId: 'PatrickStevens', edit: '0', type: 'newTag', createdAt: '2016-08-25 09:37:46', auxPageId: 'stub_meta_tag', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '0', likeableType: 'changeLog', myLikeValue: '0', likeCount: '0', dislikeCount: '0', likeScore: '0', individualLikes: [], id: '19132', pageId: 'object_identity_via_interactions', userId: 'PatrickStevens', edit: '0', type: 'newParent', createdAt: '2016-08-25 09:37:43', auxPageId: 'category_theory', oldSettingsValue: '', newSettingsValue: '' }, { likeableId: '3434', likeableType: 'changeLog', myLikeValue: '0', likeCount: '1', dislikeCount: '0', likeScore: '1', individualLikes: [], id: '19130', pageId: 'object_identity_via_interactions', userId: 'PatrickStevens', edit: '1', type: 'newEdit', createdAt: '2016-08-25 09:37:18', auxPageId: '', oldSettingsValue: '', newSettingsValue: '' } ], feedSubmissions: [], searchStrings: {}, hasChildren: 'false', hasParents: 'true', redAliases: {}, improvementTagIds: [], nonMetaTagIds: [], todos: [], slowDownMap: 'null', speedUpMap: 'null', arcPageIds: 'null', contentRequests: {} }