{
localUrl: '../page/join_examples.html',
arbitalUrl: 'https://arbital.com/p/join_examples',
rawJsonUrl: '../raw/3v4.json',
likeableId: '2771',
likeableType: 'page',
myLikeValue: '0',
likeCount: '1',
dislikeCount: '0',
likeScore: '1',
individualLikes: [
'EricBruylant'
],
pageId: 'join_examples',
edit: '19',
editSummary: '',
prevEdit: '18',
currentEdit: '19',
wasPublished: 'true',
type: 'wiki',
title: 'Join and meet: Examples',
clickbait: '',
textLength: '2833',
alias: 'join_examples',
externalUrl: '',
sortChildrenBy: 'likes',
hasVote: 'false',
voteType: '',
votesAnonymous: 'false',
editCreatorId: 'KevinClancy',
editCreatedAt: '2016-06-20 03:57:20',
pageCreatorId: 'KevinClancy',
pageCreatedAt: '2016-05-27 02:43:38',
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: '117',
text: 'A union of sets and the least common multiple of a set of natural numbers can both be viewed as joins. In addition, joins can be useful to the designers of statically typed programming languages.\n\n%%%knows-requisite([3v1]):\nThe real numbers\n------------------------------\n\nConsider the [-3rb] $\\langle \\mathbb{R}, \\leq \\rangle$ of all real numbers ordered by the standard comparison relation. For any non-empty $X \\subseteq \\mathbb{R}$, $\\bigvee X$ exists if and only if $X$ has an upper bound; this fact falls directly out of the definition of the set of real numbers.\n%%%\n\n\nSubtyping\n------------------\n\nStatically typed programming languages often define a poset of types ordered by the subtyping relation; Scala is one such language. Consider the following Scala program.\n\n\n\nWhen a programmer defines a class hierarchy in an object-oriented language, they are actually defining a poset of types. The above program defines the simple poset shown in the following Hasse diagram.\n\n\n\n%%%comment:\ndot source:\n\ndigraph G {\n node [width = 0.1, height = 0.1];\n edge [arrowhead = "none"];\n rankdir = BT;\n Dog -> Animal;\n Cat -> Animal;\n}\n%%%\n\nNow consider the expression *if (b) dog else cat*. If b is true, then it evaluates to a value of type Dog. If b is false, then it evaluates to a value of type Cat. What type, then, should *if (b) dog else cat* have? Its type should be the join of Dog and Cat, which is Animal.\n\nPower sets\n-------------------\n\nLet $X$ be a [-3jz]. Consider the [-3rb] $\\langle \\mathcal{P}(X), \\subseteq \\rangle$, the power set of $X$ ordered by inclusion. In this poset, joins are unions: for all $A \\subseteq \\mathcal{P}(X)$, $\\bigvee A = \\bigcup A$. This can be shown as follows. Let $A \\subseteq \\mathcal{P}(X)$. Then $\\bigcup A$ is an upper bound of $A$ because a union contains each of its constituent sets. Furthermore, $\\bigcup A$ is the *least* upper bound of $A$. For let $Z$ be an upper bound of $A$. Then $x \\in \\bigcup A$ implies $x \\in Y$ for some $Y \\in A$, and since $Y \\subseteq Z$, we have $x \\in Y \\subseteq Z$. Since $x \\in \\bigcup A$ implies $x \\in Z$, we have $\\bigcup A \\subseteq Z$. Hence, $\\bigvee A = \\bigcup A$.\n\nDivisibility\n------------------\n\nConsider the poset $\\langle \\mathbb Z_+, | \\rangle$ of divisibility on the positive integers. In this poset, the upper bounds of an integer are exactly its multiples. Thus, the join of a set of positive integers in $\\langle \\mathbb Z_+, | \\rangle$ is their [least_common_multiple least common multiple]. Dually, the meet of a set of positive integers in $\\langle \\mathbb Z_+, | \\rangle$ is their [greatest_common_divisor greatest common divisor].\n\n\n\n',
metaText: '',
isTextLoaded: 'true',
isSubscribedToDiscussion: 'false',
isSubscribedToUser: 'false',
isSubscribedAsMaintainer: 'false',
discussionSubscriberCount: '1',
maintainerCount: '1',
userSubscriberCount: '0',
lastVisit: '',
hasDraft: 'false',
votes: [],
voteSummary: [
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0',
'0'
],
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: [
'KevinClancy',
'EricRogstad'
],
childIds: [],
parentIds: [
'math_join'
],
commentIds: [
'3v5',
'4jg'
],
questionIds: [],
tagIds: [],
relatedIds: [],
markIds: [],
explanations: [],
learnMore: [],
requirements: [],
subjects: [],
lenses: [],
lensParentId: 'math_join',
pathPages: [],
learnMoreTaughtMap: {},
learnMoreCoveredMap: {},
learnMoreRequiredMap: {},
editHistory: {},
domainSubmissions: {},
answers: [],
answerCount: '0',
commentCount: '2',
newCommentCount: '0',
linkedMarkCount: '0',
changeLogs: [
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '14062',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '19',
type: 'newEdit',
createdAt: '2016-06-20 03:57:20',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '14061',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '18',
type: 'newEdit',
createdAt: '2016-06-20 03:56:42',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '14057',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '17',
type: 'newEdit',
createdAt: '2016-06-20 03:50:12',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '14056',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '16',
type: 'newEdit',
createdAt: '2016-06-20 03:49:23',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '14055',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '15',
type: 'newEdit',
createdAt: '2016-06-20 03:48:38',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '13746',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '14',
type: 'newEdit',
createdAt: '2016-06-17 23:00:18',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '13745',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '13',
type: 'newEdit',
createdAt: '2016-06-17 22:57:28',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '12702',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '12',
type: 'newEdit',
createdAt: '2016-06-14 17:41:20',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '12701',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '11',
type: 'newEdit',
createdAt: '2016-06-14 17:39:01',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '12700',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '10',
type: 'newEdit',
createdAt: '2016-06-14 17:38:07',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '12699',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '9',
type: 'newEdit',
createdAt: '2016-06-14 17:33:21',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '12698',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '8',
type: 'newEdit',
createdAt: '2016-06-14 17:32:45',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '12383',
pageId: 'join_examples',
userId: 'EricRogstad',
edit: '7',
type: 'newEdit',
createdAt: '2016-06-11 01:51:08',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '12318',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '6',
type: 'newEdit',
createdAt: '2016-06-10 15:11:58',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '12317',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '5',
type: 'newEdit',
createdAt: '2016-06-10 15:07:18',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '11491',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '4',
type: 'newEdit',
createdAt: '2016-05-30 22:08:09',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '11149',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '3',
type: 'newEdit',
createdAt: '2016-05-27 02:50:19',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '11146',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '2',
type: 'newEdit',
createdAt: '2016-05-27 02:46:10',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '11144',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '1',
type: 'newEdit',
createdAt: '2016-05-27 02:43:38',
auxPageId: '',
oldSettingsValue: '',
newSettingsValue: ''
},
{
likeableId: '0',
likeableType: 'changeLog',
myLikeValue: '0',
likeCount: '0',
dislikeCount: '0',
likeScore: '0',
individualLikes: [],
id: '11142',
pageId: 'join_examples',
userId: 'KevinClancy',
edit: '1',
type: 'newParent',
createdAt: '2016-05-27 02:42:57',
auxPageId: 'math_join',
oldSettingsValue: '',
newSettingsValue: ''
}
],
feedSubmissions: [],
searchStrings: {},
hasChildren: 'false',
hasParents: 'true',
redAliases: {},
improvementTagIds: [],
nonMetaTagIds: [],
todos: [],
slowDownMap: 'null',
speedUpMap: 'null',
arcPageIds: 'null',
contentRequests: {}
}