{"_id": "NRFr5bNmusG6tyqnS", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w:Work | w in u.visible implies lone w.ids\n}", "derivationOf": "9C8Pqm27tmhAcc4ii", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:04:34"} {"_id": "t8SkvsHTGiz3zAjg3", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work | w in u.profile implies (u in w.source or (some Intitution in w.source))\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u:User, w:Work | w in u.profile implies lone (u.visible & w)\n}", "derivationOf": "DDYSSpN5vYzHrReMi", "msg": "The name \"Intitution\" cannot be found.", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 22:30:26"} {"_id": "YFQKkgnxHzQyMDnuW", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | some (User<:visible).w implies some w.(User<:profile)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "jBtcA7RWJ784RjNRc", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 19:49:21"} {"_id": "RGtxktTiRbxsA6eom", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall x, y : Work | no x.ids = y.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "rnu6eyJPQs4N9EMEX", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/Id}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 20:15:18"} {"_id": "WF7mdndjoHfqSKcn4", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | some (User<:visible).w implies some w.(User<:profile) \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "wmTcC2mFLeweSx5vR", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 19:50:36"} {"_id": "hX537j6paibPQhFmb", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tWork.source in (User+Instituition)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "xnfD6uxbYJLdjSTkx", "msg": "The name \"Instituition\" cannot be found.", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-9 03:43:01"} {"_id": "ePB4odBt2sPq2vtgw", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { \n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n\tall u:User | all w:(u.profile) | (w.source) in (u + Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \tall u:User | all w:(u.visible) | lone w.ids in (u.visible).ids\n}", "derivationOf": "uLyxBRYiMK62iJAvK", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-9 04:13:32"} {"_id": "4a79XMCruX4CfPvjE", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | ((w1=w2) and (w1 in u.visible)) implies w2 not in u.visible\n}", "derivationOf": "sAdKrh3pznR5eirLY", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:17:46"} {"_id": "9C8Pqm27tmhAcc4ii", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w:Work | w in u.profile implies lone w.ids\n}", "derivationOf": "BNhDrXexA8Bd5exdY", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:03:21"} {"_id": "ctuviwF8XnATXbsrX", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User, w : Work | u->w in profile implies (u.source in User or u.source in Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "msg": "The join operation here always yields an empty set.\nLeft type = {this/User}\nRight type = {this/Work->this/Source}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-22 07:42:13"} {"_id": "38L2Tw2dfxopJA3JT", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u : User | some id1, id2 : Id | some u.profile.Work.id1 and u.profile.Work.id2 implies id1 != id2\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "3hhRRA3K4RrN5x494", "msg": "This cannot be a legal relational join where\nleft hand side is u . (this/User <: profile) (type = {this/Work})\nright hand side is this/Work (type = {this/Work})", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-11-3 20:22:52"} {"_id": "uC2R59oWorQxkKWXy", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work, u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n}", "derivationOf": "oNCxxSSrcFkpz6jaD", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2019-11-3 20:37:12"} {"_id": "xEdBjjymT25spBNhW", "cmd_i": 0, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tWork in User<:profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "cWW9r4zp6LMR7zeEC", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 19:44:24"} {"_id": "sDLJQh4DCzvXancwh", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "KnNktxckiAf6FbqFY", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2019-10-21 14:40:29"} {"_id": "tFbq74EfDvnNFKdnX", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work, i:Id | (w1 in u.visible and w2 in u.visible) implies (w1.i != w2.i)\n}", "derivationOf": "9B3iXAfK2vtTxKXs4", "msg": "This cannot be a legal relational join where\nleft hand side is w1 (type = {this/Work})\nright hand side is i (type = {this/Id})", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-9 01:31:47"} {"_id": "AuzxczeXW4zALZSX8", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some (u<:profile).Work implies some u.(Work<:source) & Institution.(Work<:source) \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "aJJq7WfnJRaSQBKHH", "msg": "The join operation here always yields an empty set.\nLeft type = {this/User}\nRight type = {this/Work->this/Source}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:03:21"} {"_id": "mBGPdqQQweqKG6dgb", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n \tall w:Work, u:User | w in u.visible implies w in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w:Work, w1:Work | (w in User.profile && w1 in User.profile) implies no (w.ids & w1.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "ZGzpJM83xfhtQ8cvS", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-21 18:54:09"} {"_id": "ikM7eGQYvr36DmuLM", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some (Work<:source).u or (Work<:source).Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "ZMFxQb43Lg77oXpTH", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 19:56:45"} {"_id": "w7tvHH7rRvCzpQSNk", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User , w:Work, i:Intitution | w in u.profile && w.source = u || w.source = i\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "PKaoomahMBfbCWPh9", "msg": "The name \"Intitution\" cannot be found.", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-21 14:49:17"} {"_id": "myrHBXNK8dFSZXgHY", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u:User, w:Work | w in u.profile implies lone (u.visible & w)\n}", "derivationOf": "wLnYwvA8yvtjsQcmp", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:28:50"} {"_id": "8byEvHuXbfb8s8Krn", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-17 10:51:40"} {"_id": "SG6CCnX9odrCeKHXX", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | (w1 in u.visible and w2 in u.visible) implies no (w1.ids & w2.ids) and (w1.source = w2.source or w1.source != w2.source)\n}", "derivationOf": "i92e2vXrnkJvmP7zD", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:27:09"} {"_id": "A3qXSY2jBWNmfoses", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2:Work, u:User | (w1 in u.profile and w2 in u.profile) implies w1.ids != w2.ids \n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "Cfka7imX5vWfNmgLH", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 19:24:10"} {"_id": "KfgDdrgRZ8fxhYLTC", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\nall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "Qazwsm8ofdFcotqNm", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2020-1-8 22:24:25"} {"_id": "64KJLyJLnY56qpTux", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | (w1 in u.profile and w2 in u.profile) implies (w1 in u.visible or w2 in u.visible)\n}", "derivationOf": "8sveZNLtb5vzbXtp9", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:39:21"} {"_id": "ek9zdhcuJwu5EwG4X", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User ,i:Institution | u.profile.source = u\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "3QyiqNP9kfBSfLDAu", "msg": "This variable is unused.", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 14:52:48"} {"_id": "k2CxoEfDbEgL8ncyG", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall u:User, w1, w2:Work | w1 in u.profile and w2 in u.profile implies w1.ids not in w2.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "eQHAbSxB3R7L2TtMK", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:26:52"} {"_id": "tYJeWxzAYcpWptJrp", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\nall u : User| some w : Work | u->w in profile implies (w.source in User or w.source in Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-22 12:24:54"} {"_id": "YSbZW4YJpsFPxhkQw", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | (u<:profile).Work in (Work<:source).u + (Work<:source).Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tno Work.id = Work.id\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "GSbRMNKfXfiLie4ij", "msg": "The name \"id\" cannot be found.", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 20:10:35"} {"_id": "KXaxN2NSxoSKcDPK9", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall x, y : Work | no x.ids = y.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "acmazusFzNYZmfQNx", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/Id}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 20:15:29"} {"_id": "AKdF2QFrkxvaWF6sX", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User, i:Id | ((w1 in u.profile and w2 in u.profile) and (w1.source = w2.source)) implies (w1.i != w2.i)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "dn2K5PbzCWFMLx45i", "msg": "This cannot be a legal relational join where\nleft hand side is w1 (type = {this/Work})\nright hand side is i (type = {this/Id})", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 23:45:31"} {"_id": "uLyxBRYiMK62iJAvK", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { \n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n\tall u:User | all w:(u.profile) | (w.source) in (u + Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \tall u:User | all w:(u.visible) | lone w.ids in (u.visible)\n}", "derivationOf": "mjZTxTxjn9TioB8ia", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-9 04:12:54"} {"_id": "xGZZ9iNQ8KAiQF6P8", "cmd_i": 0, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tsome User.visible.Work\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "bKycSL7xqEEqei4mJ", "msg": "This cannot be a legal relational join where\nleft hand side is this/User . (this/User <: visible) (type = {this/Work})\nright hand side is this/Work (type = {this/Work})", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 12:12:45"} {"_id": "thSvihsEtYp25kjRj", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | Work.(u<:profile) in (Work<:source).u + (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "xGTcmGER3MR8L4AHE", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:07:45"} {"_id": "Te65MZ7aGK7G6Fba3", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.ids in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "EqcXY9JnHQgKBxkvy", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Id}\nRight type = {this/Source}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:14:44"} {"_id": "EaiJufyxBgRTtceRs", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User, w : Work | u->w in profile implies (w<:source in User or w<:source in Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "ZXxM3J2uPwS7FmRMJ", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/Work->this/Source}\nRight type = {this/User}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-22 07:42:38"} {"_id": "7AepnJjWbk96e5N5t", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { \n \tall u:User , w:Work | (w in u.profile) implies (w.source = u || w.source = Institution) \n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n all w:Work, w1:Work | no (w.ids & w1.ids)\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w:Work | w in u.profile implies lone (u.visible & w)\n}", "derivationOf": "z4mqZe3FbSWffLppk", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-22 10:55:19"} {"_id": "h58zhyT5AqTXGLkFv", "cmd_i": 0, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tno Work in User.profile & User.visible\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "PnED5HjGpRuRjAcx8", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 19:45:41"} {"_id": "Mh2M5b97AS3EJRrpw", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User | all w : Work | some (u<:visible).w implies lone w\n}", "derivationOf": "Z2DLMhk6NWEtmWTjP", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:23:29"} {"_id": "3xTKD3nijYQ26F52Q", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u: User | u.visible in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u: User, w: u.profile | w.source = u or w.source in Institution\n \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u: User | all w1, w2: u.profile | not w1.ids = w2.ids\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "2mc7yFj4wyfNhiPKR", "msg": "There are 38 possible tokens that can appear here:\n! # ( * @ Int NAME NUMBER STRING String Time ^ after all always before disj eventually fun historically iden int let lone no none once one pred seq set some sum this univ { } ~", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 22:09:23"} {"_id": "snDjD335hmeJTbsub", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | (w1 in u.visible and w2 in u.visible) and\n \t\t\t\t\t\t\t (w1.source = w2.source or w1.source != w2.source)\n implies no (w1.ids & w2.ids)\n}", "derivationOf": "n9QTCTdtQF3tLoyco", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:14:04"} {"_id": "jBtcA7RWJ784RjNRc", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | some w.(User<:visible) implies some w.(User<:profile)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "u5ZxNNY7JGvdyuxtD", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 19:49:07"} {"_id": "6bJ4j3DKRJwBEc4xE", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | (u<:profile).Work in (Work<:source).u & (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "NRbowT588NYuNRs5m", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/User}\nRight type = {this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 19:59:48"} {"_id": "MvdCfoMfLAiRP8gA5", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w:Work, w1:Work | (w in User.profile && w1 in User.profile) implies no (w.ids & w1.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "w8puRMszM65YhY8az", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:22:19"} {"_id": "JGYztJfxsdXSiPTZA", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { \n\tall u:User ,i:Institution | u.profile.source = u || u.profile.source = i\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u:User, w:Work, w1:Work | w,w1 in u.profile implies w.ids != w1.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "W5Qhwov8JmSnHhjvN", "msg": "There are 38 possible tokens that can appear here:\n! # ( * @ Int NAME NUMBER STRING String Time ^ after all always before disj eventually fun historically iden int let lone no none once one pred seq set some sum this univ { } ~", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-21 14:56:45"} {"_id": "iAtFeatpWL5wPRxKr", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User | some w1, w2 : Work | (some (u<:visible).w1 and some (u<:visible).w1) implies w1 = w2\n}", "derivationOf": "ua272Wr2gQCGmNoPv", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:22:05"} {"_id": "7hJaAMXSzqRYPb7DJ", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User, w : Work | u->w in visible and u->w in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall w : Work | w.source in Source\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "e8DKPxxGhpjrbfnqD", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-2 23:36:03"} {"_id": "ujdqduACiz8GBeHiE", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n \tall w:Work, u:User | w in u.visible implies w in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2020-1-21 18:49:37"} {"_id": "itGKYJeZMETMe4jhT", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u: User | u.visible in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u: User, w: u.profile | w.source = u or w.source in Institution\n \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u: User | all w1, w2: u.profile | not w1.ids = w2.ids\n\n}\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "3xTKD3nijYQ26F52Q", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:09:29"} {"_id": "e8DKPxxGhpjrbfnqD", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User, w : Work | u->w in visible and u->w in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall w : Work | w.source in Source\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "HgMPdAddsTD2uLEGY", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-2 23:35:55"} {"_id": "kfzbBTGmMhogSXjZN", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-17 09:20:53"} {"_id": "KnNktxckiAf6FbqFY", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tUser.visible in User.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 14:39:39"} {"_id": "eEtGiGoHPbgacYcW9", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t \tall u:User , w:Work |some i:Institution| (w in u.profile) implies (w.source = u || w.source = i) \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t \n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "6h9WGpZd4yJ3Hc8dZ", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:08:21"} {"_id": "gxKMuX8o5bRNXMuPR", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | (u<:profile).Work in (Work<:source).u + (Work<:source).Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "vyFuq3n6wAH6PXTFE", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/User}\nRight type = {this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:08:48"} {"_id": "m8qhjs2di7DwhJ5gM", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.ids & w2.ids) and (w1.source = w2.source)) implies (w1=w2)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "NfgvuzRRyqvzseyTN", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Id}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-9 00:45:44"} {"_id": "X7QdS4iyvdnPkXzAc", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.ids = w2.ids) and (w1.source = w2.source)) implies no (w1.ids & w2.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "R34oGL8HxSJ5ZYJKw", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 00:42:07"} {"_id": "H8XK8R4itCdXGJFr3", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n\tall u:User, w:(user.profile + user.visible) | w in (u+Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "ooPtHBpcXdNFmt8Qa", "msg": "The name \"user\" cannot be found.", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-9 03:49:37"} {"_id": "t8dJRs3YKYj7MjCMk", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work, u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User, w1, w2 : Work | w1 != w2 and (w1 + w2) in u.visible implies (w1.source != w2.source and w1.ids != w2.ids)\n}", "derivationOf": "LCYCcPNXMQg6Pntas", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:49:13"} {"_id": "xGTcmGER3MR8L4AHE", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | Work.(u<:profile) in (Work<:source).u + (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "mCmNHxzsWTq3LmnRj", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:07:30"} {"_id": "YMkjB5Kd5DgFTdjT8", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w1, w2 : Work | w1->w2 in visible and w1->w2 in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "AC9Fp46YgcQ6memWw", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Work->this/Work}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-2 23:28:26"} {"_id": "376iCeRXh3ZFGZqhB", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | (u<:profile).Work in (Work<:source).u + (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "9qQfctCo9GfLJhd9Q", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/User}\nRight type = {this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:05:30"} {"_id": "Cfka7imX5vWfNmgLH", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work, i:Institution | w in u.profile implies (u in w.source or i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "MeZ7zBjX4qg5u2FBq", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 19:20:23"} {"_id": "oYohGnuPphPeTdFrs", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w:Work | w in u.profile implies lone (u.visible & w)\n}", "derivationOf": "LdZ68dizTdozk66Fd", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:00:12"} {"_id": "ZNQ9QEiJNnP4HgW3f", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User | some w1, w2 : Work | some (u<:visible).w1 and (u<:visible).w1 implies w1 = w2\n}", "derivationOf": "nfS5CP6brQkS8Wgsg", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/User}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 20:21:42"} {"_id": "p6N7ywKkYRX4Zn3i2", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User, w : Work | u->w in profile implies (w.source in User or w.source in Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "EaiJufyxBgRTtceRs", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-22 07:42:47"} {"_id": "3iXXdnZHSpi23SsFD", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.source = w2.source)) implies (w1.ids != w2.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "QkzvueRjTjQZKamfd", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 00:33:53"} {"_id": "eRZ3XmXuBAL36mWia", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | (u<:profile).Work in some (Work<:source).u or some (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "aEYrcQ2N7sXEwpAGN", "msg": "There are 29 possible tokens that can appear here:\n# ( * @ Int NAME NUMBER STRING String Time ^ all disj fun iden int let lone no none one pred seq some sum this univ { ~", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 19:59:18"} {"_id": "CFuuqpMufLNLn95fp", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { \n\tall u:User ,i:Institution | u.profile.source = u || u.profile.source = i\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u:User, w:Work, w1:Work | w.source = w1.source && w1 in u.profile && w in u.profile implies w.ids != w1.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "AGu9bkpvAz77W26pZ", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 14:58:23"} {"_id": "4ck32jqWK7BmoCk3m", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.source = w2.source)) implies no (w.ids & w1.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "upyt7xf3ErpRgLZXo", "msg": "The name \"w\" cannot be found.", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 23:16:57"} {"_id": "2PKFqXbZ6NSS3KQSJ", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and no (w1.ids & w2.ids) and (w1.source = w2.source)) implies (w1=w2)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "m8qhjs2di7DwhJ5gM", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 00:46:00"} {"_id": "EqcXY9JnHQgKBxkvy", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2019-11-3 20:13:52"} {"_id": "cmgcya5Fd3ghFfX3r", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { \n\tall u:User ,i:Institution | u.profile.source = u || u.profile.source = i\n}\n\n\npred Inv3 { \n\tall u:User, w:Work, w1:Work | w.source = w1.source && w1 in u.profile && w in u.profile implies w.ids != w1.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User , i:Id, i1:Id | i in u.visible.ids & i1 in u.visible.ids implies i != i1\n}", "derivationOf": "sqom9sdyteShym3M4", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-21 15:10:26"} {"_id": "Zk3ertzxvmc79CQ2b", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { \n\tall u:User ,i:Institution | u.profile.source = u || u.profile.source = i\n}\n\n\npred Inv3 { \n\tall u:User, w:Work, w1:Work | w.source = w1.source && w1 in u.profile && w in u.profile implies w.ids != w1.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n User.visible.ids != User.visible.ids\n}", "derivationOf": "StoEogAMPREcBPGjz", "msg": "== is redundant, because the left and right expressions always have the same value.\nLeft type = {this/Id}\nRight type = {this/Id}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 15:03:02"} {"_id": "rvahrYM6WiDJ77HDT", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work, u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User, w1, w2 : Work | w1 != w2 and (w1 + w2) in u.visible implies (w1.source != w2.source and w1.ids != w2.ids)\n}", "derivationOf": "zGJRfpYrESR7A5qxT", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:46:22"} {"_id": "MPPT2gG54DJXqRKvN", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall w:Work | (w in User.profile) implies (User = w.source) \n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "FxiRHR2AGcCz2v7TD", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-22 10:49:14"} {"_id": "iW9Jp8RL68XqjHLNe", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work | w in u.profile implies (u in w.source) or (some Institution in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u:User, w:Work | w in u.profile implies lone (u.visible & w)\n}", "derivationOf": "gtNbjgiMxLp3ZLmY5", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 22:35:17"} {"_id": "cWW9r4zp6LMR7zeEC", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tWork in User.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 19:44:06"} {"_id": "xfpoALZp9SSRLbfQo", "cmd_i": 0, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tsome user.profile in user.visible\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "xGZZ9iNQ8KAiQF6P8", "msg": "The name \"user\" cannot be found.", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 12:14:35"} {"_id": "7hz7WxjhLF54Hq7vX", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | some (User<:visible).w\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "sja7aSLAaDvLFLuQi", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 19:47:57"} {"_id": "QCD3BhKciTQsHjhhM", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "F8kkXqthxGdTGjPoY", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2020-1-8 22:59:09"} {"_id": "5HqNmAhqsEkFGAzu6", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some w : Work | u->w in profile implies some (w<:source).Institution or some (w<:source).User\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tlone Work<:(User.profile)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "PZM2z5ZZd64TW6tbQ", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-23 08:37:40"} {"_id": "bA8ntuFnAicgZc8pP", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2019-11-10 21:18:46"} {"_id": "eQHAbSxB3R7L2TtMK", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall u:User, w1, w2:Work in u.profile | w1.ids!=w2.ids \n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "ioRTq7TpMnQEPn8ut", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 22:25:16"} {"_id": "zGJRfpYrESR7A5qxT", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work, u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User, w1, w2 : Work | w1 != w2 and (w1 + w2) in u.visible implies (w1.source != w2.source or w1.ids != w2.ids)\n}", "derivationOf": "kj7qwhinpdW2z7avk", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:46:02"} {"_id": "upMhrGDzjgfBYhxJC", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | some (User<:visible).w implies some (User<:profile).w\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "7hz7WxjhLF54Hq7vX", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 19:48:18"} {"_id": "rnu6eyJPQs4N9EMEX", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall x, y : Work | no x<:ids = y<:ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "maTLDedxxZvhkBdce", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/Work->this/Id}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 20:15:10"} {"_id": "pMN3646uJrbk8Fsyh", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work, u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User, w1, w2 : Work | w1 != w2 and (w1 + w2) in u.visible implies (w1.source != w2.source or w1.ids != w2.ids)\n}", "derivationOf": "rvahrYM6WiDJ77HDT", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:46:49"} {"_id": "Q2kZDGmsvxRuTYP2z", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w1, w2 : Work | w1->w2 in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "q8wHMYnmC3CeSD2LR", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Work->this/Work}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-2 23:27:21"} {"_id": "FpCoEkYY33X3TGZRK", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2020-1-8 19:13:30"} {"_id": "T7AqvvTHoXmzs9BiY", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "metK65oYbcT8Rp7gb", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2019-10-18 19:53:23"} {"_id": "XWghcNFpH92nxDhvb", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work | w in u.profile implies (u in w.source or some Institution in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t \n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "62mb2Y387bw2HKz8d", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 22:03:24"} {"_id": "wLnYwvA8yvtjsQcmp", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall u:User, w1, w2:Work | w1 in u.profile and w2 in u.profile implies w1.ids not in w2.ids and w2.ids not in w1.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "k2CxoEfDbEgL8ncyG", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:27:11"} {"_id": "SWnc7GC4CAw58LmvR", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\nall u:User, w:Work | some i:Institution | w in u.profile implies (u in w.source or i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "ZPWr4ocuqS5DJs8Pw", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:24:04"} {"_id": "7ycawySxfXFWoY4HF", "cmd_i": 0, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | some (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "7CvsQcg9ToQpHFpEa", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 19:52:44"} {"_id": "XHdW9ogf2uoEfNJGR", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t \n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \tall u:User, w1, w2:Work | (w1 in u.visible and w2 in u.visible) implies w1!=w2\n}", "derivationOf": "A3qXSY2jBWNmfoses", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 19:25:58"} {"_id": "mCmNHxzsWTq3LmnRj", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | Work.(u<:profile) in (Work<:source).u + (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "ABEAJXgnncMEyexq5", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:07:25"} {"_id": "aBvqD82r5ieoCrQ6o", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work, p:u.profile | (w1.ids=w2.ids) and (w1 in p and w2 in p) implies (w1 not in u.visible or w2 not in u.visible) \n}", "derivationOf": "QcgSBQZ3GLCS7pLT4", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:45:32"} {"_id": "MpkxDWJoepRnbFZt2", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tWork in User.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "xEdBjjymT25spBNhW", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 19:44:29"} {"_id": "ency8nDxeKJcg86PJ", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.^ids = w2.ids)) implies w1=w2\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "TZx5xKgdzaE59DYNL", "msg": "^ (this/Work <: ids) is redundant since its domain and range are disjoint: {this/Work->this/Id}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 00:36:39"} {"_id": "d2MJbgtP5hRo2Lodr", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u: User | u.visible in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u: User, w: u.profile | w.source = u or w.source in Institution\n \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u: User, w1, w2: u.profile | w1.ids != w2.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "Ph9AjfMm9nPEWJAe7", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 21:58:11"} {"_id": "BNhDrXexA8Bd5exdY", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w:Work | w in u.profile implies lone (u.visible.ids & w.ids)\n}", "derivationOf": "oYohGnuPphPeTdFrs", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:01:01"} {"_id": "4jxaihAj79JCqqobc", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | (w1.ids=w2.ids) implies (w1 not in u.visible or w2 not in u.visible) \n}", "derivationOf": "ouApXyDcBPtZwEtvK", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:42:50"} {"_id": "dv7cSzLRbRQm7qziC", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User, i:Id | ((w1 in u.profile and w2 in u.profile) and (w1.source = w2.source)) implies (w1.ids != w2.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "Be9tfods3wXdGBwBY", "msg": "This variable is unused.", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 23:45:45"} {"_id": "xnfD6uxbYJLdjSTkx", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User| all w:(user.profile + user.visible) | w.source in Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "LApxC2YW3yYHdfuWF", "msg": "The name \"user\" cannot be found.", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-9 03:41:59"} {"_id": "6ep8kY7EXsi82L536", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work, i:Institution | w in u.profile implies (u in w.source | i in w.source) \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "sYSZh38LNWkegT3Ct", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 19:18:38"} {"_id": "w8puRMszM65YhY8az", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w:Work, w1:Work | (w in User.profile && w1 in User.profile) implies no (w.ids & w1.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "vEWsTahZLSaDg6Lnq", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:22:13"} {"_id": "zjvn7shMuKndPeJXi", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | (w1=w2) implies no (w1 in u.visible & w2 in u.visible) \n}", "derivationOf": "NMy6ynbSjjnpL5J36", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-9 01:41:06"} {"_id": "xaPbNNR62oKpNiSzh", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some w : Work | u->w in profile implies some (w<:source).Institution or some (w<:source).User\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tlone Id.Work<:(User.profile)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "RAXH3WtvTbexkk8zK", "msg": "This cannot be a legal relational join where\nleft hand side is this/Id (type = {this/Id})\nright hand side is this/Work (type = {this/Work})", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-23 08:38:07"} {"_id": "q8wHMYnmC3CeSD2LR", "cmd_i": 0, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tin profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "msg": "There are 38 possible tokens that can appear here:\n! # ( * @ Int NAME NUMBER STRING String Time ^ after all always before disj eventually fun historically iden int let lone no none once one pred seq set some sum this univ { } ~", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-11-2 23:26:35"} {"_id": "fTXHEKnrHWLEehyGo", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1:Work | w1 in u.visible implies no (u.visible.ids & w.ids)\n}", "derivationOf": "NRFr5bNmusG6tyqnS", "msg": "The name \"w\" cannot be found.", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-9 01:06:24"} {"_id": "B8qA6xeDdjyAcDkaj", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u: User | u.visible in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "HrLCgEZDqe5ysi6Q2", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2020-1-8 21:46:51"} {"_id": "4NH3uLySiYXqotRiR", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t all u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "zcdZ8SjzGLxmJRzQX", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2020-1-8 23:00:11"} {"_id": "PKaoomahMBfbCWPh9", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User , w:Work, i:Intitution | w in u.profile && w.source == u || w.source == i\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "LJrX2LupejcFSKcmn", "msg": "There are 23 possible tokens that can appear here:\n# ( * @ Int NAME NUMBER STRING String Time ^ disj fun iden int none pred seq sum this univ { ~", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-21 14:49:10"} {"_id": "6jRrrHifvE9uM2pQM", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | w1.ids in w2.ids implies (w1 in u.visible or w2 in u.visible)\n}", "derivationOf": "mMygFyLk7C7cunFyB", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:36:01"} {"_id": "f2Nybvf7kc6EAjrA2", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w:Work | w in u.profile implies lone (w in u.visible)\n}", "derivationOf": "cizXDhJkwf6uk3Row", "msg": "This expression failed to be typechecked line 42, column 49, filename=/tmp/alloy_heredoc4622109296182757646.als", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 22:58:36"} {"_id": "3Z9FaY2XKu7CxjbXs", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User | some w : Work | some (u<:visible).w implies lone w\n}", "derivationOf": "AKnhAzSRvNMeorp6Q", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:20:31"} {"_id": "ejmauvuoAkHygTvSL", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | (w1 in u.visible and w2 in u.visible) implies w1!=w2\n}", "derivationOf": "DeANMHnEK5xXqx7Mj", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:21:48"} {"_id": "Lj9BvPQQJDmtcBdBN", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work, u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User, w1, w2 : Work | w1 != w2 and (w1 + w2) in u.visible implies (no w1.ids & w2.ids)\n}", "derivationOf": "xWSBc9ABb45B7f8TK", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:42:40"} {"_id": "mjZTxTxjn9TioB8ia", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { \n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n\tall u:User | all w:(u.profile) | (w.source) in (u + Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w:Work | lone w.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "8vo2Hsdifx9K3Mvug", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 04:05:29"} {"_id": "TS8s9tyaTk7iZyyMP", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some (u<:profile).Work implies some (Work<:source).u or some (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "AqeA7zD9636gfFyYf", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:00:38"} {"_id": "acmazusFzNYZmfQNx", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall x, y : Work | no x.ids == y.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "RGtxktTiRbxsA6eom", "msg": "There are 29 possible tokens that can appear here:\n# ( * @ Int NAME NUMBER STRING String Time ^ all disj fun iden int let lone no none one pred seq some sum this univ { ~", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 20:15:24"} {"_id": "B3JzJjptmf2ZW62ZM", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User , w:Work, i:Institution | w in u.profile && w.source = u || w.source = i\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "w7tvHH7rRvCzpQSNk", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 14:49:24"} {"_id": "RnSY9GzRzXEX8pSoi", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | (u<:profile).Work in (Work<:source).u + (Work<:source).Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tno Work.ids = Work.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "YSbZW4YJpsFPxhkQw", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/Id}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 20:10:42"} {"_id": "7CvsQcg9ToQpHFpEa", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tsome (User<:visible).Work implies some (User<:profile).Work \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "RmngSePZmuf4G6TRi", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 19:51:07"} {"_id": "9B3iXAfK2vtTxKXs4", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work, i:Id | (w1 in u.visible and w2 in u.visible) implies (w1.i != w2.i)\n}", "derivationOf": "ThZdHB9ToAwFrxKk3", "msg": "This cannot be a legal relational join where\nleft hand side is w1 (type = {this/Work})\nright hand side is i (type = {this/Id})", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-9 01:31:18"} {"_id": "Qazwsm8ofdFcotqNm", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\nall u:User, w:Work | w in u.profile implies (some i:Institution | u in w.source or i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "SWnc7GC4CAw58LmvR", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:24:15"} {"_id": "J7temY4hpoPGMzZA5", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { \n \tall u:User , w:Work | (w in u.profile) implies (w.source = u || w.source = Institution) \n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n all w:Work, w1:Work | w in User.profile && w1 in User.profile -> no (w.ids & w1.ids)\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w:Work | w in u.profile implies lone (u.visible & w)\n}", "derivationOf": "7AepnJjWbk96e5N5t", "msg": "There are 22 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ disj fun iden int none pred seq sum this univ { ~", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-22 10:56:31"} {"_id": "yTbZbdtCE8ytPspy2", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.ids = w2.ids) and (w1.source = w2.source)) implies (w1.ids & w2.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "X7QdS4iyvdnPkXzAc", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Id}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-9 00:44:37"} {"_id": "ejFXkHfhJh3hwRZH6", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | u->w1 in visible \n}", "derivationOf": "y7NHMATrF9Q9AMLQg", "original": "JC8Tij8o8GZb99gEJ", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "Id"}, {"parent": "Source", "type": "Institution"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "RejectedBy"}, {"parent": "RejectedBy", "type": "ShouldBeAccepted"}, {"parent": "RejectedBy", "type": "ShouldBeRejected"}, {"parent": "univ", "type": "Source"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Source", "type": "User"}, {"parent": "univ", "type": "Work"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "Id"}, {"parent": "Source", "type": "Institution"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "RejectedBy"}, {"parent": "RejectedBy", "type": "ShouldBeAccepted"}, {"parent": "RejectedBy", "type": "ShouldBeRejected"}, {"parent": "univ", "type": "Source"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Source", "type": "User"}, {"parent": "univ", "type": "Work"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": []}, "nodePositions": {"Institution": {"x": 761.1428571428571, "y": 199}, "ShouldBeRejected": {"x": 126.85714285714283, "y": 199}, "User": {"x": 634.2857142857142, "y": 199}, "Work0": {"x": 380.57142857142856, "y": 199}, "Work1": {"x": 507.42857142857144, "y": 199}, "Work2": {"x": 253.71428571428572, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "ids"}, {"color": "#0074D9", "relation": "profile"}, {"color": "#0074D9", "relation": "source"}, {"color": "#0074D9", "relation": "visible"}, {"color": "#0074D9", "relation": "ShouldBeAccepted"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "ids"}, {"edgeStyle": "solid", "relation": "profile"}, {"edgeStyle": "solid", "relation": "source"}, {"edgeStyle": "solid", "relation": "visible"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "ids", "showAsArcs": false}, {"relation": "profile", "showAsArcs": true}, {"relation": "source", "showAsArcs": true}, {"relation": "visible", "showAsArcs": true}, {"relation": "ShouldBeRejected", "showAsArcs": true}, {"relation": "ShouldBeAccepted", "showAsArcs": true}, {"relation": "Id", "showAsArcs": true}, {"relation": "Work", "showAsArcs": true}, {"relation": "Institution", "showAsArcs": true}], "showAsAttributes": [{"relation": "visible", "showAsAttributes": false}, {"relation": "profile", "showAsAttributes": false}, {"relation": "ids", "showAsAttributes": true}, {"relation": "source", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Id"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "User"}, {"border": "inherit", "type": "Source"}, {"border": "inherit", "type": "Work"}, {"border": "inherit", "type": "ShouldBeRejected"}, {"border": "inherit", "type": "RejectedBy"}, {"border": "inherit", "type": "seq/Int"}, {"border": "inherit", "type": "general"}, {"border": "inherit", "type": "Institution"}, {"border": "inherit", "type": "ShouldBeAccepted"}, {"border": "inherit", "type": "ids"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "Id"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "User"}, {"color": "inherit", "type": "Source"}, {"color": "#39CCCC", "type": "Work"}, {"color": "#FF4136", "type": "ShouldBeRejected"}, {"color": "inherit", "type": "RejectedBy"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "general"}, {"color": "#FFDC00", "type": "Institution"}, {"color": "#FF4136", "type": "ShouldBeAccepted"}, {"color": "inherit", "type": "ids"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Id"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "User"}, {"shape": "inherit", "type": "Source"}, {"shape": "roundrectangle", "type": "Work"}, {"shape": "octagon", "type": "ShouldBeRejected"}, {"shape": "inherit", "type": "RejectedBy"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "general"}, {"shape": "inherit", "type": "Institution"}, {"shape": "octagon", "type": "ShouldBeAccepted"}, {"shape": "inherit", "type": "ids"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Id", "visibility": true}, {"type": "User", "visibility": false}, {"type": "Work", "visibility": false}, {"type": "ShouldBeRejected", "visibility": false}, {"type": "Institution", "visibility": false}, {"type": "ShouldBeAccepted", "visibility": false}, {"type": "ids", "visibility": false}]}}, "time": "2019-11-10 22:16:32"} {"_id": "5Tzy5cLujTKsjsSs7", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | Work.(u<:profile) in (Work<:source).u + (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "376iCeRXh3ZFGZqhB", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:06:08"} {"_id": "bKycSL7xqEEqei4mJ", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tsome User.visible\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 12:12:31"} {"_id": "fYSP7DDTr4AhbsPfA", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "7ycawySxfXFWoY4HF", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2019-10-18 19:52:52"} {"_id": "AC9Fp46YgcQ6memWw", "cmd_i": 0, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w1, w2 : Work | w1->w2 in visible w1->w2 and in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "xR4ZJuT4tun6SYY3q", "msg": "There are 37 possible tokens that can appear here:\n! # ( * @ Int NAME NUMBER STRING String Time ^ after all always before disj eventually fun historically iden int let lone no none once one pred seq set some sum this univ { ~", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-11-2 23:28:15"} {"_id": "H2gY3AxRxaBiSa869", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n\tUser.visible in User.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "gW2vvhfshgogitqHw", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-22 10:44:29"} {"_id": "kj7qwhinpdW2z7avk", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work, u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User, w1, w2 : Work | w1 != w2 and (w1 + w2) in u.visible implies w1.source != w2.source or (w1.ids != w2.ids)\n}", "derivationOf": "8GdwHBHExeKMSj95u", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:45:52"} {"_id": "QepEQ4eQgffzEsrG3", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { \n \tall u:User , w:Work | (w in u.profile) implies (w.source = u || w.source = Institution) \n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w:Work | lone (u.visible & w)\n}", "derivationOf": "jxXXR3wnf7uohMsBW", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-22 10:52:23"} {"_id": "KbsfXtF8WRZRzWz5Z", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.source = w2.source)) implies (w1.ids not in w2.ids and w2.ids not in w1.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "KdHubCyLquQvgaCa9", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 00:53:05"} {"_id": "N8NXMSBu3XkTLuzMY", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | (Work<:source).u in (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "4G7RRmwH4QByKyJsu", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:03:44"} {"_id": "7Wm5BceyftgX3KTdd", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.ids = w2.ids) and (w1.source = w2.source)) implies w1=w2\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "amtS74PWTLwJJaPjk", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 00:38:26"} {"_id": "nPTH3KxhWPikPr8QM", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall w1, w2:Work, u:User, i:Institution | w1, w2 in u.profile implies (u in w1.source and i in w2.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t \n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "6YA2A5MNR9u6LYNSi", "msg": "There are 38 possible tokens that can appear here:\n! # ( * @ Int NAME NUMBER STRING String Time ^ after all always before disj eventually fun historically iden int let lone no none once one pred seq set some sum this univ { } ~", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 19:39:26"} {"_id": "wDNHXp7kRjKguLHAD", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tUser.visible in User.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "WYu5bGKoMsSbjoZrm", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 12:15:26"} {"_id": "jFRiM8jWxbEMNGjW7", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work | some i:Institution | w in u.profile implies u in w.source or i in w.source\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t \n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "eEtGiGoHPbgacYcW9", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:09:03"} {"_id": "3hhRRA3K4RrN5x494", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u : User, some id1, id2 : Id | some u.profile.Work.id1 and u.profile.Work.id2 implies id1 != id2\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "Hrdvf3DPrDC3uCCrE", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-11-3 20:22:25"} {"_id": "moTyeHEnfpeN4rkQT", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work | w in u.profile implies (u in w.source) or (some Institution in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u:User, w:Work | w in u.profile implies lone (u.visible & w)\n}", "derivationOf": "f5v2qQh8KsLWd35Xp", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 22:30:53"} {"_id": "agCFMxrg4Pxo9ReGL", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { \n\tall u:User ,i:Institution | u.profile.source = u || u.profile.source = i\n}\n\n\npred Inv3 { \n\tall u:User, w:Work, w1:Work | w.source = w1.source && w1 in u.profile && w in u.profile implies w.ids != w1.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User , w:Work, w1:Work | (w in u.visible and w1 in u.visible) implies w != w1\n}", "derivationOf": "NMBrB7GmXnjoHSQ8F", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 15:13:38"} {"_id": "sAdKrh3pznR5eirLY", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | ((w1.ids in w2.ids or w2.ids in w1.ids) and (w1 in u.visible)) implies w2 not in u.visible\n}", "derivationOf": "iu7jCaZodeiZ4EXgP", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:16:57"} {"_id": "Cvvoy6tBTDLTHKL3p", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n User.visible in User.profile & User\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "sDLJQh4DCzvXancwh", "msg": "& is irrelevant because the two subexpressions are always disjoint.\nLeft type = {this/Work}\nRight type = {this/User}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 14:40:52"} {"_id": "mC9XySB57i8Eym3h2", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some w : Work | u->w in profile implies some (w.source).Institution or (w.source).User\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "PrN5iKAuPvbHGnNoJ", "msg": "This cannot be a legal relational join where\nleft hand side is w . (this/Work <: source) (type = {this/Source})\nright hand side is this/Institution (type = {this/Institution})", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-23 08:35:03"} {"_id": "ZPWr4ocuqS5DJs8Pw", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\nall u:User, w:Work | some i:Institution | w in u.profile implies (u in w.source or i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:23:11"} {"_id": "7YqMzCPMQJZZw6Tho", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u : User | all w1, w2 : Work | (w1 != w2 and (w1 + w2) in u.visible) implies (w1.ids != w2.ids and w1.source != w2.source)\n}", "derivationOf": "LAAraRBsadgfBj5n3", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:32:00"} {"_id": "r5qMxvq68J7b2aMnd", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | (u<:profile).Work in (Work<:source).u + (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "5Tzy5cLujTKsjsSs7", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/User}\nRight type = {this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:06:39"} {"_id": "nfS5CP6brQkS8Wgsg", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User | some w1, w2 : Work | some (u<:visible).w1 and (u<:visible).w1 implies w1=w2\n}", "derivationOf": "3Z9FaY2XKu7CxjbXs", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/User}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 20:21:30"} {"_id": "XPqT6TWoRBFjRQheM", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.ids = w2.ids) and (w1.source = w2.source)) implies (w1.ids & w2.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "yTbZbdtCE8ytPspy2", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Id}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-9 00:44:48"} {"_id": "NMBrB7GmXnjoHSQ8F", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { \n\tall u:User ,i:Institution | u.profile.source = u || u.profile.source = i\n}\n\n\npred Inv3 { \n\tall u:User, w:Work, w1:Work | w.source = w1.source && w1 in u.profile && w in u.profile implies w.ids != w1.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User , w:Work, w1:Work | w in u.visible && w1 in u.visible implies w != w1\n}", "derivationOf": "75iF8xATfjXTgungZ", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 15:12:10"} {"_id": "4G7RRmwH4QByKyJsu", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some (u<:profile).Work implies some (Work<:source).u & (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "AuzxczeXW4zALZSX8", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:03:29"} {"_id": "y7NHMATrF9Q9AMLQg", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | u->w1 in visible \n}", "derivationOf": "vYE24qm9TKgCzA4KA", "msg": "This variable is unused.", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-10 21:33:00"} {"_id": "6YA2A5MNR9u6LYNSi", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t \n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \tall u:User, w:Work | lone w in u.visible\n}", "derivationOf": "xqvvTtnrwgTkMJMWJ", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 19:32:26"} {"_id": "WkFfMWzK8PLyHnX6y", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User , w:Work, i:Institution | w in u.profile && (w.source = u || w.source = i)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "B3JzJjptmf2ZW62ZM", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 14:50:03"} {"_id": "PYpbGQchPGFgDAWaR", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n \tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "QCD3BhKciTQsHjhhM", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2020-1-8 22:59:29"} {"_id": "aJJq7WfnJRaSQBKHH", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some (u<:profile).Work implies some u.(Work<:source) & Institution.(Work<:source) \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "k6a6jHQA24uqE3z6g", "msg": "The join operation here always yields an empty set.\nLeft type = {this/User}\nRight type = {this/Work->this/Source}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:03:17"} {"_id": "7mrXZPwrrAqzyEy6G", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work, u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User, w1, w2 : Work | w1 != w2 and (w1 + w2) in u.visible and (w1.source != w2.source) implies w1.ids != w2.ids)\n}", "derivationOf": "pMN3646uJrbk8Fsyh", "msg": "There are 38 possible tokens that can appear here:\n! # ( * @ Int NAME NUMBER STRING String Time ^ after all always before disj eventually fun historically iden int let lone no none once one pred seq set some sum this univ { } ~", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-11-3 20:47:27"} {"_id": "PZ4LfbK8WzJz7WRTG", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work, u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User, w1, w2 : Work | w1 != w2 and (w1 + w2) in u.profile implies (w1.source != w2.source) or (w1.ids != w2.ids)\n}", "derivationOf": "uC2R59oWorQxkKWXy", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:39:56"} {"_id": "ua272Wr2gQCGmNoPv", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User | some w1, w2 : Work | (some (u<:visible).w1 and (u<:visible).w1) implies w1 = w2\n}", "derivationOf": "ZNQ9QEiJNnP4HgW3f", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/User}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 20:21:59"} {"_id": "BLXpaCkuTRjPFqS96", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User | all w:u.profile | w.source = u or w.source in Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "eKRufXrKQs58ugFbu", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2020-1-8 12:19:43"} {"_id": "CBBLETrwMBKwGXwad", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | (w1 in u.profile and w2 in u.profile) implies (w1.ids not in w2.ids and w2.ids not in w1.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "KbsfXtF8WRZRzWz5Z", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 00:54:05"} {"_id": "Hvd7LddnNBnJRMGz3", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work | w in u.profile implies u in w.source\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t \n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "nPTH3KxhWPikPr8QM", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 19:43:30"} {"_id": "ZXxM3J2uPwS7FmRMJ", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User, w : Work | u->w in profile implies (u<:source in User or u<:source in Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "ctuviwF8XnATXbsrX", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {none->none}\nRight type = {this/User}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-22 07:42:29"} {"_id": "H7poYeXnYsDboPFcr", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.ids in (u + Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "Te65MZ7aGK7G6Fba3", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Id}\nRight type = {this/Source}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:14:55"} {"_id": "oNCxxSSrcFkpz6jaD", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work | all u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n}", "derivationOf": "hk3XmKN4YFjL7k98x", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2019-11-3 20:37:05"} {"_id": "7GiesXJkWAsAfiGqN", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.ids = w2.*ids) and (w1.source = w2.source)) implies w1=w2\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "7Wm5BceyftgX3KTdd", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 00:39:14"} {"_id": "xWSBc9ABb45B7f8TK", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work, u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User, w1, w2 : Work | w1 != w2 and (w1 + w2) in u.visible implies (w1.source != w2.source) or (no w1.ids & w2.ids)\n}", "derivationOf": "PaeGRdMxEEDSMqPvt", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:42:29"} {"_id": "CHbREQMb2hKNwmDSP", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u : User | all w1, w2 : Work | (w1 != w2 and (w1 + w2) in u.visible) implies no w1.ids & w2.ids\n}", "derivationOf": "GtcaEyCWjKDtd5hPb", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:29:06"} {"_id": "cpHJ8n6Nw2LGtGnpq", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u : User | all w1, w2 : Work | w1 != w2 and (w1 + w2) in u.visible implies w1.ids != w2.ids\n}", "derivationOf": "HCYqWkLiAFsnbbRJv", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:28:13"} {"_id": "AhcnLTLcsm5dLiC9Y", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | (u<:profile).Work in (Work<:source).u + (Work<:source).Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tno Work<:ids = Work<:ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "RnSY9GzRzXEX8pSoi", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/Work->this/Id}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 20:10:58"} {"_id": "HCYqWkLiAFsnbbRJv", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u : User | all w1, w2 : Work | (w1 + w2) in u.visible implies w1.ids != w2.ids\n}", "derivationOf": "4v3YtycPTcBSwYpnd", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:27:48"} {"_id": "QkzvueRjTjQZKamfd", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.source = w2.source)) implies (w1.ids != w2.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "dv7cSzLRbRQm7qziC", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 23:45:52"} {"_id": "7Mq9n9EZaSzkSZzvn", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some w : Work | u->w in profile implies (w.source in Institution or w.source in User)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "crAFaEARSNMZ8YMgS", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-23 08:34:15"} {"_id": "9aNZQSMrZ3bqTFdns", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { \n\tall u:User ,i:Institution | u.profile.source = u || u.profile.source = i\n}\n\n\npred Inv3 { \n\tall u:User, w:Work, w1:Work | w.source = w1.source && w1 in u.profile && w in u.profile implies w.ids != w1.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User | u.visible.ids != u.visible.ids\n}", "derivationOf": "Zk3ertzxvmc79CQ2b", "msg": "== is redundant, because the left and right expressions always have the same value.\nLeft type = {this/Id}\nRight type = {this/Id}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 15:03:40"} {"_id": "ZtQr57i6de2KKhdDp", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1:Work | w1 in u.visible implies no (u.visible.ids & w1.ids)\n}", "derivationOf": "fTXHEKnrHWLEehyGo", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:06:34"} {"_id": "qTi7zNEdGnXWkA5Fs", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall w:User.profile |\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "Cvvoy6tBTDLTHKL3p", "msg": "There are 37 possible tokens that can appear here:\n! # ( * @ Int NAME NUMBER STRING String Time ^ after all always before disj eventually fun historically iden int let lone no none once one pred seq set some sum this univ { ~", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-21 14:44:22"} {"_id": "DuZsLXyzw82JpirkE", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n \tall w:Work, u:User | w in u.visible implies w in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | w1.visible and w2.visible implies w1!=w2\n}", "derivationOf": "mBGPdqQQweqKG6dgb", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{none}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-21 18:55:36"} {"_id": "iu6ZtNTSMygKN5xZ9", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some w : Work | u->w in profile implies some (w<:source).Institution or some (w<:source).User\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "d2tm2FF7HStrjdbcS", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-23 08:35:42"} {"_id": "PZM2z5ZZd64TW6tbQ", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some w : Work | u->w in profile implies some (w<:source).Institution or some (w<:source).User\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tlone Work.(User.profile)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "ytbExBsmrrKRSigae", "msg": "This cannot be a legal relational join where\nleft hand side is this/Work (type = {this/Work})\nright hand side is this/User . (this/User <: profile) (type = {this/Work})", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-23 08:37:20"} {"_id": "KdHubCyLquQvgaCa9", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.source = w2.source)) implies no (w1.ids & w2.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "2PKFqXbZ6NSS3KQSJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 00:51:30"} {"_id": "j3eEvY56aodBHyL47", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tWork<:ids != Work<:ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "judPZjhEwwLAidN4i", "msg": "== is redundant, because the left and right expressions always have the same value.\nLeft type = {this/Work->this/Id}\nRight type = {this/Work->this/Id}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:13:55"} {"_id": "Fz5uXf4hwLqwp7Kfo", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { \n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n\tall u:User | all w:(u.profile) | (w.source) in (u + Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \tall u:User | all w:(u.visible) | (w.ids) in (u.visible).ids\n}", "derivationOf": "SWiE9rvfHvCu24Brt", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 04:18:38"} {"_id": "ioRTq7TpMnQEPn8ut", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | (w1 in u.profile and w2 in u.profile) implies w1.ids!=w2.ids \n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "TX7Cif3GZZkkuXEKZ", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:24:24"} {"_id": "eCm59NCMpHvzDAEkN", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | u->w1 in visible and u->w2 in visible implies w1.ids!=w2.ids\n}", "derivationOf": "89QyKQwr6y7G5PWaE", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-10 21:27:08"} {"_id": "GtcaEyCWjKDtd5hPb", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u : User | all w1, w2 : Work | w1 != w2 and (w1 + w2) in u.visible implies no w1.ids & w2.ids\n}", "derivationOf": "cpHJ8n6Nw2LGtGnpq", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:28:31"} {"_id": "3QyiqNP9kfBSfLDAu", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User , w:Work, i:Institution | w in u.profile && (w.source = u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "WkFfMWzK8PLyHnX6y", "msg": "This variable is unused.", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 14:50:36"} {"_id": "CLKaRQioLmrvPZZaw", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | ((w1.ids in w2.ids) or (w2.ids in w1.ids)) implies (w1 in u.visible or w2 in u.visible)\n}", "derivationOf": "6jRrrHifvE9uM2pQM", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:36:36"} {"_id": "ZcpuPkLAhNsewGe4f", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | (w1 in u.profile and w2 in u.profile) implies no (w1.ids & w2.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "CBBLETrwMBKwGXwad", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 00:54:50"} {"_id": "PaeGRdMxEEDSMqPvt", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work, u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User, w1, w2 : Work | w1 != w2 and (w1 + w2) in u.visible implies (w1.source != w2.source) and (no w1.ids & w2.ids)\n}", "derivationOf": "93eFhFJ53jxeNAKWX", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:42:17"} {"_id": "F8kkXqthxGdTGjPoY", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w:Work | w in u.profile implies lone (u.visible & w)\n}", "derivationOf": "f2Nybvf7kc6EAjrA2", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:58:46"} {"_id": "zLSTGgWsAJLC7wHEq", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n\tall u:User, w:(u.profile + u.visible) | w in (u+Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "H8XK8R4itCdXGJFr3", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Work}\nRight type = {this/Source}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 03:49:48"} {"_id": "3DSfRJvQLQoDZNb5M", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n\tall u:User | all w:(u.profile) | (w.source) in (u + Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "qpBEtnRDYuE56QbAX", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2020-1-9 03:53:12"} {"_id": "ooPtHBpcXdNFmt8Qa", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tWork.source in (User+Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "hX537j6paibPQhFmb", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 03:43:13"} {"_id": "LYPvf8oAgpN9QpGNj", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { \n \tall u:User , w:Work | (w in u.profile) implies (w.source = u || w.source = Institution) \n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n all w:Work, w1:Work | w in User.profile && w1 in User.profile implies no (w.ids & w1.ids)\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w:Work | w in u.profile implies lone (u.visible & w)\n}", "derivationOf": "J7temY4hpoPGMzZA5", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-22 10:56:39"} {"_id": "NE83znfubzcXR3csm", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User, w : Work | u->w in visible and u->w in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "Tg5gEN7bCWiubt3y6", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-2 23:29:29"} {"_id": "2mc7yFj4wyfNhiPKR", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u: User | u.visible in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u: User, w: u.profile | w.source = u or w.source in Institution\n \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u: User, w1, w2: u.profile | not w1.ids = w2.ids\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "D8H8hQocPKDYc9Fht", "msg": "There are 38 possible tokens that can appear here:\n! # ( * @ Int NAME NUMBER STRING String Time ^ after all always before disj eventually fun historically iden int let lone no none once one pred seq set some sum this univ { } ~", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 22:09:12"} {"_id": "W5Qhwov8JmSnHhjvN", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User ,i:Institution | u.profile.source = u || u.profile.source = i\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "ek9zdhcuJwu5EwG4X", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 14:53:06"} {"_id": "DcPcsTj8zNc4uPyaL", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\n\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\n\nsig Institution extends Source {}\n\nsig Id {}\n\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u: User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2020-1-2 18:26:53"} {"_id": "StoEogAMPREcBPGjz", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { \n\tall u:User ,i:Institution | u.profile.source = u || u.profile.source = i\n}\n\n\npred Inv3 { \n\tall u:User, w:Work, w1:Work | w.source = w1.source && w1 in u.profile && w in u.profile implies w.ids != w1.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n User.visible != User.visible \n}", "derivationOf": "eRtjGQZd3P3fvq6Go", "msg": "== is redundant, because the left and right expressions always have the same value.\nLeft type = {this/Work}\nRight type = {this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 15:02:18"} {"_id": "FxiRHR2AGcCz2v7TD", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall w:Work | (w in User.profile) implies (w.source = User ) \n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "PJm7te45hiWriGGog", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-22 10:48:49"} {"_id": "3sJYPoPksBBwTfqoG", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | u->w1.ids in visible and u->w2 in visible implies w1!=w2\n}", "derivationOf": "AWMuk9PyG3AjFcv6q", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/User->this/Id}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-10 21:26:22"} {"_id": "dbneR2smXCpqo3rgy", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u : User | some id1, id2 : Id | some u.profile.ids.id1 and u.profile.ids.id2 implies id1 != id2\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "38L2Tw2dfxopJA3JT", "msg": "This cannot be a legal relational join where\nleft hand side is u . (this/User <: profile) . (this/Work <: ids) (type = {this/Id})\nright hand side is id1 (type = {this/Id})", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-11-3 20:23:38"} {"_id": "zAA5nR3suT9cBjZD5", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { \n \tall u:User , w:Work | (w in u.profile) implies (w.source = u || w.source = Institution) \n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w:Work | w in u.profile implies lone (u.visible & w)\n}", "derivationOf": "QepEQ4eQgffzEsrG3", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-22 10:53:35"} {"_id": "RmngSePZmuf4G6TRi", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | some (User<:visible).w implies some (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "WF7mdndjoHfqSKcn4", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 19:50:52"} {"_id": "LdZ68dizTdozk66Fd", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | (w1 in u.profile and w2 in u.profile) and (w1.source=w2.source) implies no (w1.ids & w2.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "ZcpuPkLAhNsewGe4f", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 00:59:03"} {"_id": "Ph9AjfMm9nPEWJAe7", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u: User | u.visible in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u: User, w: u.profile | w.source = u or w.source in Institution\n \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "B8qA6xeDdjyAcDkaj", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2020-1-8 21:50:06"} {"_id": "z4mqZe3FbSWffLppk", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { \n \tall u:User , w:Work | (w in u.profile) implies (w.source = u || w.source = Institution) \n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n all w:Work, w1:Work | no (w.ids & w1.ids)\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w:Work | w in u.profile implies lone (u.visible & w)\n}", "derivationOf": "zAA5nR3suT9cBjZD5", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-22 10:55:14"} {"_id": "HE9hxZFKGic2QKrv9", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall x, y : Work | x.ids != y.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "j3eEvY56aodBHyL47", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:14:46"} {"_id": "eHPEX2mg9yqXNptu6", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { \n\tall u:User ,i:Institution | u.profile.source = u || u.profile.source = i\n}\n\n\npred Inv3 { \n\tall u:User, w:Work, w1:Work | w.source = w1.source && w1 in u.profile && w in u.profile implies w.ids != w1.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User , w:Work | w in u.profile implies (lone u.visible & w)\n}", "derivationOf": "Ppdcx8TfYZsx8CjJx", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 15:17:36"} {"_id": "metK65oYbcT8Rp7gb", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t(User<:visible).Work in (User<:profile).Work \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "fYSP7DDTr4AhbsPfA", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 19:53:11"} {"_id": "g6Jnp8kjhy7Ydf25q", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | (w1 in u.visible and w2 in u.visible) implies no (w1.ids & w2.ids)\n}", "derivationOf": "X4PYHfdQEHrGTzRNP", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:28:09"} {"_id": "NRbowT588NYuNRs5m", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | (u<:profile).Work in some (Work<:source).u & (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "eRZ3XmXuBAL36mWia", "msg": "There are 29 possible tokens that can appear here:\n# ( * @ Int NAME NUMBER STRING String Time ^ all disj fun iden int let lone no none one pred seq some sum this univ { ~", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 19:59:33"} {"_id": "QcgSBQZ3GLCS7pLT4", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work, p:u.profile |(w1.ids=w2.ids)and(w1 in p and w2 in p) implies (w1 not in u.visible or w2 not in u.visible) \n}", "derivationOf": "4jxaihAj79JCqqobc", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:44:46"} {"_id": "cx4xY5qNvJp3z8NC7", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : Use | some w : Work | u->w in profile implies (Institution in w.source or User in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "msg": "The name \"Use\" cannot be found.", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-23 08:33:02"} {"_id": "TqiK4irzToBeCxiNH", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { \n \tall u:User , w:Work | (w in u.profile) implies (w.source = u || w.source = Institution) \n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n all w:Work, w1:Work | (w in User.profile && w1 in User.profile) implies no (w.ids & w1.ids)\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w:Work | w in u.profile implies lone (u.visible & w)\n}", "derivationOf": "LYPvf8oAgpN9QpGNj", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-22 10:56:52"} {"_id": "ZMFxQb43Lg77oXpTH", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "T7AqvvTHoXmzs9BiY", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2019-10-18 19:54:23"} {"_id": "sja7aSLAaDvLFLuQi", "cmd_i": 0, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | some User.(visible.w)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "h58zhyT5AqTXGLkFv", "msg": "This cannot be a legal relational join where\nleft hand side is this/User (type = {this/User})\nright hand side is (this/User <: visible) . w (type = {this/User})", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 19:47:42"} {"_id": "ytbExBsmrrKRSigae", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some w : Work | u->w in profile implies some (w<:source).Institution or some (w<:source).User\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tWork.(User.profile) in iden\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "iu6ZtNTSMygKN5xZ9", "msg": "This cannot be a legal relational join where\nleft hand side is this/Work (type = {this/Work})\nright hand side is this/User . (this/User <: profile) (type = {this/Work})", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-23 08:37:11"} {"_id": "mRze7GNFEEqvfviaE", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tWork in User.profile + User.visible\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "MpkxDWJoepRnbFZt2", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 19:45:25"} {"_id": "PJm7te45hiWriGGog", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User , w:Work | (w in u.profile) implies (w.source = u ) \n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "9DNW6eNcNYTPKwx8D", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-22 10:47:49"} {"_id": "sqom9sdyteShym3M4", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { \n\tall u:User ,i:Institution | u.profile.source = u || u.profile.source = i\n}\n\n\npred Inv3 { \n\tall u:User, w:Work, w1:Work | w.source = w1.source && w1 in u.profile && w in u.profile implies w.ids != w1.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User , i:Id, i1:Id | i in u.visible.ids && i1 in u.visible.ids && i != i1\n}", "derivationOf": "pJva76RqT9da4fGSz", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 15:10:16"} {"_id": "f2eRuSgoNNDgJsnc6", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u : User | all w1, w2 : Work | (w1 != w2 and (w1 + w2) in u.visible) implies (w1.ids != w2.ids or w1.source != w2.source)\n}", "derivationOf": "NGf9sNMpgT8uarQrG", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:31:04"} {"_id": "edG6a4geNcPHz2yJD", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "yzZJtws3QhDD7uqNL", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2020-1-9 03:36:21"} {"_id": "HrLCgEZDqe5ysi6Q2", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u: User, w: Work | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2020-1-8 21:44:59"} {"_id": "Rmt7vzhbYhkJEJ7bp", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some w : Work | u->w in profile implies (Institution in w.source or User in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "cx4xY5qNvJp3z8NC7", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-23 08:33:09"} {"_id": "93eFhFJ53jxeNAKWX", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work, u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User, w1, w2 : Work | w1 != w2 and (w1 + w2) in u.profile implies (w1.source != w2.source) and (no w1.ids & w2.ids)\n}", "derivationOf": "FvFv6QLnpCDE6YBuY", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:41:27"} {"_id": "vnnSr5GqfBMTT7No9", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work | some u : User | w1 != w2 and (w1 + w2) in u.profile implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n}", "derivationOf": "Hty6E3KdZD9R9GShH", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:35:09"} {"_id": "CbfnBz7D4iCKeBnRG", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work, i:Institution | w in u.profile implies (u in w.source) | (i in w.source) \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "6ep8kY7EXsi82L536", "msg": "There are 38 possible tokens that can appear here:\n! # ( * @ Int NAME NUMBER STRING String Time ^ after all always before disj eventually fun historically iden int let lone no none once one pred seq set some sum this univ { } ~", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 19:18:57"} {"_id": "ouApXyDcBPtZwEtvK", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | (w1.ids=w2.ids and w1.source = w2.source) implies (w1 not in u.visible or w2 not in u.visible) \n}", "derivationOf": "8tgiJap4DzpFQ26TL", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:42:37"} {"_id": "72N4uXhb2TpSMG8D8", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work, i:Id | w1 = w2 implies (w1 in u.visible or w2 in visible)\n}", "derivationOf": "SsWFNMriDgevEkePj", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-9 01:34:58"} {"_id": "6h9WGpZd4yJ3Hc8dZ", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work | some i:Institution | w in u.profile implies (u in w.source or i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t \n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "XWghcNFpH92nxDhvb", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:03:37"} {"_id": "ThZdHB9ToAwFrxKk3", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work, i:Id | (w1 in u.visible and w2 in u.visible) implies no (w1.i & w2.i)\n}", "derivationOf": "g6Jnp8kjhy7Ydf25q", "msg": "This cannot be a legal relational join where\nleft hand side is w1 (type = {this/Work})\nright hand side is i (type = {this/Id})", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-9 01:30:59"} {"_id": "hk3XmKN4YFjL7k98x", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work | some u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n}", "derivationOf": "mHbQp3AWDr9s9dTX9", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:36:15"} {"_id": "oHb5JjbsyhmKAfDBs", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u : User | ~allIds[u].allIds[u] in iden\n}\n\nfun allIds[u : User] : set Id {\n\tu.profile.Work.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "8nGvxsvMvjjMNbqDS", "msg": "Name cannot be resolved; possible incorrect function/predicate call; perhaps you used ( ) when you should have used [ ]\n\nThis cannot be a correct call to fun this/allIds.\nThe parameters are\n u: {this/User}\nso the arguments cannot be empty.", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-11-3 20:20:21"} {"_id": "vYE24qm9TKgCzA4KA", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | lone u->w1 in visible \n}", "derivationOf": "K4GmumY2z764CodyS", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-11-10 21:32:55"} {"_id": "ZGzpJM83xfhtQ8cvS", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n \tall w:Work, u:User | w in u.visible implies w in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1,w2:Work | w1.ids = w2.ids implies w1 = w2\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "wnQbHPFmqWHznYHEF", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-21 18:53:41"} {"_id": "f5v2qQh8KsLWd35Xp", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work | w in u.profile implies (u in w.source or (some Institution in w.source))\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u:User, w:Work | w in u.profile implies lone (u.visible & w)\n}", "derivationOf": "t8SkvsHTGiz3zAjg3", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 22:30:33"} {"_id": "SsWFNMriDgevEkePj", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work, i:Id | (w1 in u.visible and w2 in u.visible) implies (w1->i != w2->i)\n}", "derivationOf": "tFbq74EfDvnNFKdnX", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:32:43"} {"_id": "yzZJtws3QhDD7uqNL", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tUser.visible in User.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 03:34:53"} {"_id": "ZYcsYugEwvGyXEoss", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u : User | some id1, id2 : Id | some u.profile.ids.id1 and u.profile.ids.id2 implies id1 != id2 \n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "dbneR2smXCpqo3rgy", "msg": "This cannot be a legal relational join where\nleft hand side is u . (this/User <: profile) . (this/Work <: ids) (type = {this/Id})\nright hand side is id1 (type = {this/Id})", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-11-3 20:23:43"} {"_id": "LAAraRBsadgfBj5n3", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u : User | all w1, w2 : Work | (w1 != w2 and (w1 + w2) in u.visible) implies (no w1.ids & w2.ids and w1.source != w2.source)\n}", "derivationOf": "qdwphqwNJpn9saxYm", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:31:41"} {"_id": "TZx5xKgdzaE59DYNL", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.^ids = w2.^ids)) implies w1=w2\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "bL2C4CZ3Dg9u78s6b", "msg": "^ (this/Work <: ids) is redundant since its domain and range are disjoint: {this/Work->this/Id}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 00:36:30"} {"_id": "XReKsX6y4otkhufW5", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | (u<:profile).Work in (Work<:source).u + (Work<:source).Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tWork<:ids != Work<:ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "bMpHhDZYQaMqK7spC", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/User}\nRight type = {this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:13:39"} {"_id": "AqeA7zD9636gfFyYf", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some (u<:profile).Work in (Work<:source).u & (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "6bJ4j3DKRJwBEc4xE", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 19:59:54"} {"_id": "NfgvuzRRyqvzseyTN", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.ids = w2.ids) and (w1.source = w2.source)) implies (w1.ids & w2.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "XPqT6TWoRBFjRQheM", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Id}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-9 00:45:07"} {"_id": "WFz3R4QLmwhRLuQpZ", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "nfEuHYXjacuE7dRbT", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2019-11-3 20:15:20"} {"_id": "2R3SRMahRi9xxDJw6", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | ((w1=w2) and (w1 in u.visible)) implies w2 not in u.visible\n}", "derivationOf": "34fqKAY7bBQ35wDJX", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:19:23"} {"_id": "vEWsTahZLSaDg6Lnq", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work | some i:Institution | w in u.profile implies (u in w.source or i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t \n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "jFRiM8jWxbEMNGjW7", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:09:49"} {"_id": "gW2vvhfshgogitqHw", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2019-10-22 10:44:06"} {"_id": "amtS74PWTLwJJaPjk", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.ids = w2.ids)) implies w1=w2\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "ency8nDxeKJcg86PJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 00:37:06"} {"_id": "62mb2Y387bw2HKz8d", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work | some i:Institution | w in u.profile implies (u in w.source or i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t \n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "Q6KcX9WQZakhGnekc", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:02:53"} {"_id": "aEYrcQ2N7sXEwpAGN", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some (Work<:source).u or some (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "ikM7eGQYvr36DmuLM", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 19:56:57"} {"_id": "mHbQp3AWDr9s9dTX9", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work | some u : User, s : Source | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n}", "derivationOf": "vnnSr5GqfBMTT7No9", "msg": "This variable is unused.", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:36:00"} {"_id": "cww4HZQD5T5E2fEZh", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tno User\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "8byEvHuXbfb8s8Krn", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-17 10:52:18"} {"_id": "crAFaEARSNMZ8YMgS", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some w : Work | u->w in profile implies (w->source in Institution or w->source in User)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "Rmt7vzhbYhkJEJ7bp", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/Work->this/Work->this/Source}\nRight type = {this/Institution}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-23 08:34:01"} {"_id": "u5ZxNNY7JGvdyuxtD", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | some (User<:visible).w implies some w.(User<:profile)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "upMhrGDzjgfBYhxJC", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 19:48:58"} {"_id": "8GdwHBHExeKMSj95u", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work, u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User, w1, w2 : Work | w1 != w2 and (w1 + w2) in u.visible implies (w1.ids != w2.ids)\n}", "derivationOf": "6YEf99jBnMxfWsQKB", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:45:17"} {"_id": "AWMuk9PyG3AjFcv6q", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | u->w1 in visible and u->w2 in visible implies w1!=w2\n}", "derivationOf": "bA8ntuFnAicgZc8pP", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-10 21:25:35"} {"_id": "jxXXR3wnf7uohMsBW", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { \n \tall u:User , w:Work | (w in u.profile) implies (w.source = u || w.source = Institution) \n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User | lone (u.profile & u.visible)\n}", "derivationOf": "NMdvRiFXkBTmM7RkY", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-22 10:51:25"} {"_id": "AD8hEgSZw7pheTnaT", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some w : Work | u->w in profile implies some (w<:source).Institution or some (w<:source).User\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tlone Work.Id<:(User.profile)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "xaPbNNR62oKpNiSzh", "msg": "This cannot be a legal relational join where\nleft hand side is this/Work (type = {this/Work})\nright hand side is this/Id (type = {this/Id})", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-23 08:38:22"} {"_id": "q7Df5hhdSgcQ6bfg4", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some (u<:profile).Work implies some (Work<:source).u + (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "TS8s9tyaTk7iZyyMP", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:00:52"} {"_id": "9qQfctCo9GfLJhd9Q", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some (u<:profile).Work implies some (Work<:source).u (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "N8NXMSBu3XkTLuzMY", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-18 20:03:49"} {"_id": "K4GmumY2z764CodyS", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | u->w1 in visible implies lone w1.ids\n}", "derivationOf": "eCm59NCMpHvzDAEkN", "msg": "This variable is unused.", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-10 21:27:43"} {"_id": "n9QTCTdtQF3tLoyco", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | (w1 in u.visible and w2 in u.visible) implies no (w1.ids & w2.ids)\n}", "derivationOf": "5ygJ6HgCe9y8DscDm", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:11:55"} {"_id": "y3iYBXZQ4crTX2oTX", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work, u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User, w1, w2 : Work | w1 != w2 and (w1 + w2) in u.visible and (w1.source != w2.source) implies w1.ids != w2.ids\n}", "derivationOf": "7mrXZPwrrAqzyEy6G", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:47:32"} {"_id": "PnED5HjGpRuRjAcx8", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tWork in User.profile & User.visible\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "mRze7GNFEEqvfviaE", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 19:45:32"} {"_id": "HgMPdAddsTD2uLEGY", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User, w : Work | u->w in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "NE83znfubzcXR3csm", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-2 23:30:25"} {"_id": "ef46Z34NpCs9eQfNY", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\n\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\n\nsig Institution extends Source {}\n\nsig Id {}\n\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u: User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u: User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "oSXzrvt2akjnL3u7P", "original": "JC8Tij8o8GZb99gEJ", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "Id"}, {"parent": "Source", "type": "Institution"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "RejectedBy"}, {"parent": "RejectedBy", "type": "ShouldBeAccepted"}, {"parent": "RejectedBy", "type": "ShouldBeRejected"}, {"parent": "univ", "type": "Source"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Source", "type": "User"}, {"parent": "univ", "type": "Work"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "Id"}, {"parent": "Source", "type": "Institution"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "RejectedBy"}, {"parent": "RejectedBy", "type": "ShouldBeAccepted"}, {"parent": "RejectedBy", "type": "ShouldBeRejected"}, {"parent": "univ", "type": "Source"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Source", "type": "User"}, {"parent": "univ", "type": "Work"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": []}, "nodePositions": {"ShouldBeRejected": {"x": 296, "y": 79.6}, "User0": {"x": 592, "y": 79.6}, "User1": {"x": 444, "y": 238.79999999999998}, "Work0": {"x": 222, "y": 318.4}, "Work1": {"x": 444, "y": 318.4}, "Work2": {"x": 666, "y": 318.4}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "ids"}, {"color": "#0074D9", "relation": "profile"}, {"color": "#0074D9", "relation": "source"}, {"color": "#0074D9", "relation": "visible"}, {"color": "#0074D9", "relation": "ShouldBeAccepted"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "ids"}, {"edgeStyle": "solid", "relation": "profile"}, {"edgeStyle": "solid", "relation": "source"}, {"edgeStyle": "solid", "relation": "visible"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "ids", "showAsArcs": false}, {"relation": "profile", "showAsArcs": true}, {"relation": "source", "showAsArcs": true}, {"relation": "visible", "showAsArcs": true}, {"relation": "ShouldBeRejected", "showAsArcs": true}, {"relation": "ShouldBeAccepted", "showAsArcs": true}, {"relation": "Id", "showAsArcs": true}, {"relation": "Work", "showAsArcs": true}, {"relation": "Institution", "showAsArcs": true}], "showAsAttributes": [{"relation": "visible", "showAsAttributes": false}, {"relation": "profile", "showAsAttributes": false}, {"relation": "ids", "showAsAttributes": true}, {"relation": "source", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "inherit", "type": "Id"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "User"}, {"border": "inherit", "type": "Source"}, {"border": "inherit", "type": "Work"}, {"border": "inherit", "type": "ShouldBeRejected"}, {"border": "inherit", "type": "RejectedBy"}, {"border": "inherit", "type": "seq/Int"}, {"border": "inherit", "type": "general"}, {"border": "inherit", "type": "Institution"}, {"border": "inherit", "type": "ShouldBeAccepted"}, {"border": "inherit", "type": "ids"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "Id"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "User"}, {"color": "inherit", "type": "Source"}, {"color": "#39CCCC", "type": "Work"}, {"color": "#FF4136", "type": "ShouldBeRejected"}, {"color": "inherit", "type": "RejectedBy"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "general"}, {"color": "#FFDC00", "type": "Institution"}, {"color": "#FF4136", "type": "ShouldBeAccepted"}, {"color": "inherit", "type": "ids"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "Id"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "User"}, {"shape": "inherit", "type": "Source"}, {"shape": "roundrectangle", "type": "Work"}, {"shape": "octagon", "type": "ShouldBeRejected"}, {"shape": "inherit", "type": "RejectedBy"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "general"}, {"shape": "inherit", "type": "Institution"}, {"shape": "octagon", "type": "ShouldBeAccepted"}, {"shape": "inherit", "type": "ids"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "Id", "visibility": true}, {"type": "User", "visibility": false}, {"type": "Work", "visibility": false}, {"type": "ShouldBeRejected", "visibility": false}, {"type": "Institution", "visibility": false}, {"type": "ShouldBeAccepted", "visibility": false}, {"type": "ids", "visibility": false}]}}, "time": "2020-1-2 18:34:54"} {"_id": "Hrdvf3DPrDC3uCCrE", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u : User, some id1, id2 : Id | some u.profile.Work.id1 and u.profile.Work.id2 implies id1 != id2\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "Xzqu4BPRXmuuEoqtT", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-11-3 20:22:16"} {"_id": "wnQbHPFmqWHznYHEF", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n \tall w:Work, u:User | w in u.visible implies w in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User,w:Work | some i:Institution | w in u.profile implies (w.source = i or w.source = u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "ujdqduACiz8GBeHiE", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-21 18:51:36"} {"_id": "X69eLSn9GtKGve2Fz", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n\tUser.visible in User.profile & User\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "H2gY3AxRxaBiSa869", "msg": "& is irrelevant because the two subexpressions are always disjoint.\nLeft type = {this/Work}\nRight type = {this/User}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-22 10:44:36"} {"_id": "xR4ZJuT4tun6SYY3q", "cmd_i": 0, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w1, w2 : Work | w1->w2 in visible and in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "Q2kZDGmsvxRuTYP2z", "msg": "There are 37 possible tokens that can appear here:\n! # ( * @ Int NAME NUMBER STRING String Time ^ after all always before disj eventually fun historically iden int let lone no none once one pred seq set some sum this univ { ~", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-11-2 23:27:54"} {"_id": "rf4rDHcxi83Ak7kRb", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User | all w:u.profile | w.source = u or w.source in Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u:User | all w:u.profile, w1:u.profile | w.source in Institution and w1.source in Institution and w.source.id != w1.source.id\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "BLXpaCkuTRjPFqS96", "msg": "The name \"id\" cannot be found.", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 12:23:29"} {"_id": "89QyKQwr6y7G5PWaE", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | u->w1 in visible and u->w2 in visible implies w1!=w2\n}", "derivationOf": "3sJYPoPksBBwTfqoG", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-10 21:26:36"} {"_id": "ABEAJXgnncMEyexq5", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | Work.(u<:profile) in (Work<:source).u & (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "3Y3AtJz969EouZkGj", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:07:20"} {"_id": "D8H8hQocPKDYc9Fht", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u: User | u.visible in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u: User, w: u.profile | w.source = u or w.source in Institution\n \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u: User, w1, w2: u.profile | not (w1.ids = w2.ids)\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "rL7Q7stPv8iohSXGF", "msg": "There are 38 possible tokens that can appear here:\n! # ( * @ Int NAME NUMBER STRING String Time ^ after all always before disj eventually fun historically iden int let lone no none once one pred seq set some sum this univ { } ~", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 22:09:04"} {"_id": "hgWke49hn3BnarwBd", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | Work.(u<:profile) in u.(Work<:source) + Institution.(Work<:source) \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "4iGAxRvHZgbvfChsL", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:08:22"} {"_id": "rL7Q7stPv8iohSXGF", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u: User | u.visible in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u: User, w: u.profile | w.source = u or w.source in Institution\n \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u: User, w1, w2: u.profile | all i: w1.ids | i not in w2.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "zJHAprk9Mo7BfsYkt", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:08:42"} {"_id": "eRtjGQZd3P3fvq6Go", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { \n\tall u:User ,i:Institution | u.profile.source = u || u.profile.source = i\n}\n\n\npred Inv3 { \n\tall u:User, w:Work, w1:Work | w.source = w1.source && w1 in u.profile && w in u.profile implies w.ids != w1.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n User.visible != User.visible\n}", "derivationOf": "CFuuqpMufLNLn95fp", "msg": "== is redundant, because the left and right expressions always have the same value.\nLeft type = {this/Work}\nRight type = {this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 15:02:11"} {"_id": "TX7Cif3GZZkkuXEKZ", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w:Work, w1:Work | (w in User.profile && w1 in User.profile) implies no (w.ids = w1.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "MvdCfoMfLAiRP8gA5", "msg": "This expression failed to be typechecked line 37, column 76, filename=/tmp/alloy_heredoc15254929816886770529.als", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 22:22:32"} {"_id": "maTLDedxxZvhkBdce", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall x, y : Work | x<:ids != y<:ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "HE9hxZFKGic2QKrv9", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:15:02"} {"_id": "AGu9bkpvAz77W26pZ", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { \n\tall u:User ,i:Institution | u.profile.source = u || u.profile.source = i\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u:User, w:Work, w1:Work | w1 in u.profile && w in u.profile implies w.ids != w1.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JGYztJfxsdXSiPTZA", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 14:57:04"} {"_id": "wmTcC2mFLeweSx5vR", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | some (User<:visible).w implies some w.(User<:profile)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "YFQKkgnxHzQyMDnuW", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 19:50:23"} {"_id": "qdwphqwNJpn9saxYm", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u : User | all w1, w2 : Work | (w1 != w2 and (w1 + w2) in u.visible) implies (no w1.ids & w2.ids or w1.source != w2.source)\n}", "derivationOf": "f2eRuSgoNNDgJsnc6", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:31:33"} {"_id": "4v3YtycPTcBSwYpnd", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u : User | all w1, w2 : Work | (w1 + w2) in u.visible implies w1 != w2\n}", "derivationOf": "ZYcsYugEwvGyXEoss", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:26:31"} {"_id": "8vo2Hsdifx9K3Mvug", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { \n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n\tall u:User | all w:(u.profile) | (w.source) in (u + Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w:(User.profile) | lone w.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "3DSfRJvQLQoDZNb5M", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 04:04:10"} {"_id": "bMpHhDZYQaMqK7spC", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | (u<:profile).Work in (Work<:source).u + (Work<:source).Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t~ids.ids in iden\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "AhcnLTLcsm5dLiC9Y", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/User}\nRight type = {this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:12:01"} {"_id": "KGNmwNTag96xpi5rw", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User | some w1, w2 : Work | (some (u<:visible).w1 & (u<:visible).w2) implies w1 = w2\n}", "derivationOf": "iAtFeatpWL5wPRxKr", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:22:20"} {"_id": "GREbt72oYHpZ4f6PB", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work, i:Id | w1 = w2 implies (w1 in u.visible or w2 in u.visible)\n}", "derivationOf": "72N4uXhb2TpSMG8D8", "msg": "This variable is unused.", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:35:16"} {"_id": "GSbRMNKfXfiLie4ij", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | (u<:profile).Work in (Work<:source).u + (Work<:source).Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "zPRtLPGr5S4oMJ4mq", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/User}\nRight type = {this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:09:09"} {"_id": "vyFuq3n6wAH6PXTFE", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | (u<:profile).Work in u.(Work<:source) + Institution.(Work<:source) \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "hgWke49hn3BnarwBd", "msg": "The join operation here always yields an empty set.\nLeft type = {this/User}\nRight type = {this/Work->this/Source}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:08:31"} {"_id": "qpBEtnRDYuE56QbAX", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n\tall u:User, all w:(u.profile) | (w.source) in (u + Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "t2y65BA77FYBNA9zX", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-9 03:52:58"} {"_id": "6ttxt6rcM5MMc3Rgd", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.*ids = w2.*ids) and (w1.source = w2.source)) implies w1=w2\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "7GiesXJkWAsAfiGqN", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 00:39:20"} {"_id": "8nGvxsvMvjjMNbqDS", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u : User | ~allIds[u].allIds[u] in iden\n}\n\nfun allIds[u : User] : one User -> set Id {\n\tprofile.Work.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "gyfha3MJLnBFpKYPx", "msg": "After the some/lone/one multiplicity symbol, this expression must be a unary set.\nInstead, its possible type(s) are:\n{this/User->this/Id}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-11-3 20:20:11"} {"_id": "4iGAxRvHZgbvfChsL", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | Work.(u<:profile) in u.(Work<:source) + (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "thSvihsEtYp25kjRj", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:08:10"} {"_id": "3Y3AtJz969EouZkGj", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | Work.(u<:profile) in (Work<:source).u + (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "r5qMxvq68J7b2aMnd", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:06:51"} {"_id": "gyfha3MJLnBFpKYPx", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u : User | ~allIds[u].allIds[u] in iden\n}\n\nfun allIds[u : User] : one User -> set Id {\n\tu <: profile.Work.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "WFz3R4QLmwhRLuQpZ", "msg": "After the some/lone/one multiplicity symbol, this expression must be a unary set.\nInstead, its possible type(s) are:\n{this/User->this/Id}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-11-3 20:19:31"} {"_id": "5DNEWFBSBoHL45fvy", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-29 15:06:00"} {"_id": "Q6KcX9WQZakhGnekc", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work, i:Institution | w in u.profile implies (u in w.source or i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t \n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "xkJ5aaMkuXungtJeb", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 19:49:13"} {"_id": "d2tm2FF7HStrjdbcS", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some w : Work | u->w in profile implies some ((w<:source).Institution or (w<:source).User)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "HtFZEHunffMQecJqd", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-23 08:35:27"} {"_id": "34fqKAY7bBQ35wDJX", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | ((w1.ids=w2.ids) and (w1 in u.visible)) implies w2 not in u.visible\n}", "derivationOf": "4a79XMCruX4CfPvjE", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:18:39"} {"_id": "8sveZNLtb5vzbXtp9", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | (w1=w2 and w1 in u.profile and w2 in u.profile) implies (w1 in u.visible or w2 in u.visible)\n}", "derivationOf": "K2urh2uxa386ASML9", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:38:28"} {"_id": "8tgiJap4DzpFQ26TL", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | (w1=w2) implies (w1 not in u.visible or w2 not in u.visible) \n}", "derivationOf": "zjvn7shMuKndPeJXi", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:41:47"} {"_id": "gtNbjgiMxLp3ZLmY5", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work | w in u.profile implies (u in w.source) or (some Institution in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u:User, w:Work | w in u.profile implies lone (u.visible & w)\n}", "derivationOf": "moTyeHEnfpeN4rkQT", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 22:32:05"} {"_id": "5ygJ6HgCe9y8DscDm", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1:Work | w1 in u.visible implies lone (u.visible.ids & w1.ids)\n}", "derivationOf": "ZtQr57i6de2KKhdDp", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:07:02"} {"_id": "DeMMa4sacRcr7hsQs", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u : User | ~allIds[u].allIds[u] in iden\n}\n\nfun allIds[u : User] : set Id {\n\tu.profile.Work.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "oHb5JjbsyhmKAfDBs", "msg": "Name cannot be resolved; possible incorrect function/predicate call; perhaps you used ( ) when you should have used [ ]\n\nThis cannot be a correct call to fun this/allIds.\nThe parameters are\n u: {this/User}\nso the arguments cannot be empty.", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-11-3 20:20:28"} {"_id": "k6a6jHQA24uqE3z6g", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some (u<:profile).Work implies some (Work<:source).u & (Work<:source).Institution \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "q7Df5hhdSgcQ6bfg4", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:01:15"} {"_id": "Tm5RfKTLJkFRKDWkv", "cmd_i": 0, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tsome User.profile in User.visible\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "xfpoALZp9SSRLbfQo", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 12:14:42"} {"_id": "eKRufXrKQs58ugFbu", "cmd_c": true, "cmd_i": 0, "cmd_n": "Inv1OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "wDNHXp7kRjKguLHAD", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2020-1-8 12:15:41"} {"_id": "u83Rb76SCYQucjhzH", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User | all w:u.profile | w.source = u or w.source in Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u:User | all w:u.profile, w1:u.profile | w.source in Institution and w1.source in Institution and w.source.Id != w1.source.Id\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "rf4rDHcxi83Ak7kRb", "msg": "This cannot be a legal relational join where\nleft hand side is w . (this/Work <: source) (type = {this/Source})\nright hand side is this/Id (type = {this/Id})", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 12:23:37"} {"_id": "K2urh2uxa386ASML9", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | w1=w2 implies (w1 in u.visible or w2 in u.visible)\n}", "derivationOf": "CLKaRQioLmrvPZZaw", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:37:21"} {"_id": "judPZjhEwwLAidN4i", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | (u<:profile).Work in (Work<:source).u + (Work<:source).Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tWork<:ids != Work<:ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "XReKsX6y4otkhufW5", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/User}\nRight type = {this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:13:45"} {"_id": "bL2C4CZ3Dg9u78s6b", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.ids = w2.ids)) implies w1=w2\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "3iXXdnZHSpi23SsFD", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 00:35:50"} {"_id": "t2y65BA77FYBNA9zX", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n\tall u:User, w:(u.profile + u.visible) | w in (u+Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "zLSTGgWsAJLC7wHEq", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Work}\nRight type = {this/Source}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 03:50:06"} {"_id": "AKnhAzSRvNMeorp6Q", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall x, y : Work | no x.ids & y.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "KXaxN2NSxoSKcDPK9", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:15:37"} {"_id": "Xzqu4BPRXmuuEoqtT", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u : User | ~allIds[u].allIds[u] in iden\n}\n\nfun allIds(u : User) : set Id {\n\tu.profile.Work.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "DeMMa4sacRcr7hsQs", "msg": "Name cannot be resolved; possible incorrect function/predicate call; perhaps you used ( ) when you should have used [ ]\n\nThis cannot be a correct call to fun this/allIds.\nThe parameters are\n u: {this/User}\nso the arguments cannot be empty.", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-11-3 20:20:41"} {"_id": "DeANMHnEK5xXqx7Mj", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | (w1=w2) and (w1 in u.visible) implies w2 not in u.visible\n}", "derivationOf": "2R3SRMahRi9xxDJw6", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:20:11"} {"_id": "FvFv6QLnpCDE6YBuY", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work, u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User, w1, w2 : Work | w1 != w2 and (w1 + w2) in u.profile implies (w1.source != w2.source) or (no w1.ids & w2.ids)\n}", "derivationOf": "PZ4LfbK8WzJz7WRTG", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:41:03"} {"_id": "CsP8CoQ2QPWN2ku79", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u : User | all w1, w2 : Work | (w1 != w2 and (w1 + w2) in u.visible) implies no w1.source != w2.source\n}", "derivationOf": "CHbREQMb2hKNwmDSP", "msg": "!= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/Source}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-11-3 20:30:14"} {"_id": "LApxC2YW3yYHdfuWF", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:(user.profile + user.visible) | w.source in Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "edG6a4geNcPHz2yJD", "msg": "The name \"user\" cannot be found.", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-9 03:41:38"} {"_id": "PrN5iKAuPvbHGnNoJ", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some w : Work | u->w in profile implies some (w.source in Institution or w.source in User)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "7Mq9n9EZaSzkSZzvn", "msg": "This expression failed to be typechecked line 32, column 57, filename=/tmp/alloy_heredoc9674675822749484972.als", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-23 08:34:33"} {"_id": "JTixpPs4JTwNSooFi", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.source = w2.source)) implies no (w1.ids & w2.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "4ck32jqWK7BmoCk3m", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 23:17:08"} {"_id": "mMygFyLk7C7cunFyB", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | w1 = w2 implies (w1 in u.visible or w2 in u.visible)\n}", "derivationOf": "GREbt72oYHpZ4f6PB", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:35:25"} {"_id": "LCYCcPNXMQg6Pntas", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work, u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User, w1, w2 : Work | w1 != w2 and (w1 + w2) in u.visible implies (w1.source != w2.source or w1.ids != w2.ids)\n}", "derivationOf": "y3iYBXZQ4crTX2oTX", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:48:20"} {"_id": "75iF8xATfjXTgungZ", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { \n\tall u:User ,i:Institution | u.profile.source = u || u.profile.source = i\n}\n\n\npred Inv3 { \n\tall u:User, w:Work, w1:Work | w.source = w1.source && w1 in u.profile && w in u.profile implies w.ids != w1.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User , i:Id, i1:Id | i in u.visible.ids && i1 in u.visible.ids implies i != i1\n}", "derivationOf": "cmgcya5Fd3ghFfX3r", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 15:10:34"} {"_id": "upyt7xf3ErpRgLZXo", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "PYpbGQchPGFgDAWaR", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2020-1-8 23:03:29"} {"_id": "NMy6ynbSjjnpL5J36", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | (w1=w2) implies (w1 in u.visible or w2 in u.visible) \n}", "derivationOf": "64KJLyJLnY56qpTux", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:40:18"} {"_id": "zJHAprk9Mo7BfsYkt", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u: User | u.visible in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u: User, w: u.profile | w.source = u or w.source in Institution\n \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u: User, w1, w2: u.profile, i: w1.ids | i not in w2.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "d2MJbgtP5hRo2Lodr", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 21:59:23"} {"_id": "k4YYE4aQjxgkPjXeu", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u:User, w:Work | w in u.profile implies lone (u.visible & w)\n}", "derivationOf": "iW9Jp8RL68XqjHLNe", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:35:23"} {"_id": "9DNW6eNcNYTPKwx8D", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User , w:Work | (w in u.profile) implies (w.source = u || w.source = Institution) \n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "X69eLSn9GtKGve2Fz", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-22 10:46:23"} {"_id": "cizXDhJkwf6uk3Row", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w:Work | w in u.profile implies lone (w in u.visible)\n}", "derivationOf": "k4YYE4aQjxgkPjXeu", "msg": "This expression failed to be typechecked line 42, column 49, filename=/tmp/alloy_heredoc437058026572267696.als", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 22:39:52"} {"_id": "NGf9sNMpgT8uarQrG", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u : User | all w1, w2 : Work | (w1 != w2 and (w1 + w2) in u.visible) implies w1.source != w2.source\n}", "derivationOf": "CsP8CoQ2QPWN2ku79", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:30:20"} {"_id": "HtFZEHunffMQecJqd", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some w : Work | u->w in profile implies some ((w.source).Institution or (w.source).User)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "mC9XySB57i8Eym3h2", "msg": "This cannot be a legal relational join where\nleft hand side is w . (this/Work <: source) (type = {this/Source})\nright hand side is this/Institution (type = {this/Institution})", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-23 08:35:10"} {"_id": "6YEf99jBnMxfWsQKB", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w1, w2 : Work, u : User | w1 != w2 and (w1 + w2) in u.profile and (w1.source = w2.source) implies no w1.ids & w2.ids\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall w1, w2 : Work | w1 != w2 and (w1 + w2) in User.visible implies (no w1.ids & w2.ids)\n}", "derivationOf": "Lj9BvPQQJDmtcBdBN", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:44:02"} {"_id": "RAXH3WtvTbexkk8zK", "cmd_i": 2, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\t\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | some w : Work | u->w in profile implies some (w<:source).Institution or some (w<:source).User\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tlone Id in Work<:(User.profile)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "5HqNmAhqsEkFGAzu6", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-10-23 08:37:59"} {"_id": "pJva76RqT9da4fGSz", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { \n\tall u:User ,i:Institution | u.profile.source = u || u.profile.source = i\n}\n\n\npred Inv3 { \n\tall u:User, w:Work, w1:Work | w.source = w1.source && w1 in u.profile && w in u.profile implies w.ids != w1.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User , i:Id, i1:Id | i in u.visible.ids && i1 in u.visible.ids implies i != i1\n}", "derivationOf": "9aNZQSMrZ3bqTFdns", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 15:10:06"} {"_id": "WYu5bGKoMsSbjoZrm", "cmd_i": 0, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tsome User.visible in User.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "Tm5RfKTLJkFRKDWkv", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 12:15:06"} {"_id": "Tg5gEN7bCWiubt3y6", "cmd_i": 0, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : USer, w : Work | u->w in visible and u->w in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "YMkjB5Kd5DgFTdjT8", "msg": "The name \"USer\" cannot be found.", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2019-11-2 23:29:22"} {"_id": "zPRtLPGr5S4oMJ4mq", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | Work.(u<:profile) in (Work<:source).u + (Work<:source).Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "gxKMuX8o5bRNXMuPR", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:09:01"} {"_id": "R34oGL8HxSJ5ZYJKw", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.ids = w2.ids) and (w1.source = w2.source)) implies w1=w2\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "6ttxt6rcM5MMc3Rgd", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 00:39:32"} {"_id": "X4PYHfdQEHrGTzRNP", "cmd_i": 3, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | (w1 in u.visible and w2 in u.visible) implies no (w1.ids & w2.ids)", "derivationOf": "q8NSdChfz9S6zmgkD", "msg": "There are 38 possible tokens that can appear here:\n! # ( * @ Int NAME NUMBER STRING String Time ^ after all always before disj eventually fun historically iden int let lone no none once one pred seq set some sum this univ { } ~", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-9 01:27:51"} {"_id": "MeZ7zBjX4qg5u2FBq", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work, i:Institution | w in u.profile implies (u in w.source || i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "CbfnBz7D4iCKeBnRG", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 19:19:17"} {"_id": "nfEuHYXjacuE7dRbT", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in (u + Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "H7poYeXnYsDboPFcr", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2019-11-3 20:15:15"} {"_id": "oSXzrvt2akjnL3u7P", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\n\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\n\nsig Institution extends Source {}\n\nsig Id {}\n\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u: User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u: User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "DcPcsTj8zNc4uPyaL", "original": "JC8Tij8o8GZb99gEJ", "sat": 0, "time": "2020-1-2 18:29:13"} {"_id": "Z2DLMhk6NWEtmWTjP", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User | some w : Work | some (u<:visible).w implies lone w\n}", "derivationOf": "84Jmro8FH5iwQDPAk", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:23:20"} {"_id": "Ppdcx8TfYZsx8CjJx", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { \n\tall u:User ,i:Institution | u.profile.source = u || u.profile.source = i\n}\n\n\npred Inv3 { \n\tall u:User, w:Work, w1:Work | w.source = w1.source && w1 in u.profile && w in u.profile implies w.ids != w1.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User , w:Work, w1:Work | (w in u.profile and w1 in u.profile and w in u.visible and w1 in u.visible) implies w != w1\n}", "derivationOf": "agCFMxrg4Pxo9ReGL", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 15:14:37"} {"_id": "dn2K5PbzCWFMLx45i", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User | ((w1 in u.profile and w2 in u.profile) and (w1.source = w2.source)) implies (w1.ids != w2.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JTixpPs4JTwNSooFi", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 23:17:46"} {"_id": "i92e2vXrnkJvmP7zD", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | (w1 in u.visible and w2 in u.visible) implies no (w1.ids & w2.ids)\n}", "derivationOf": "ejmauvuoAkHygTvSL", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:22:31"} {"_id": "xqvvTtnrwgTkMJMWJ", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t \n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \tall u:User, w1, w2:Work | (w1 in u.visible and w2 in u.visible) implies w1.ids!=w2.ids\n}", "derivationOf": "XHdW9ogf2uoEfNJGR", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 19:27:18"} {"_id": "84Jmro8FH5iwQDPAk", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w : Work | (User<:visible).w in (User<:profile).w \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u : User | some w1, w2 : Work | (some (u<:visible).w1 and some (u<:visible).w2) implies w1 = w2\n}", "derivationOf": "KGNmwNTag96xpi5rw", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-18 20:22:25"} {"_id": "NMdvRiFXkBTmM7RkY", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall w:Work | (w in User.profile) && (User = w.source) \n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "MPPT2gG54DJXqRKvN", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-22 10:49:31"} {"_id": "zcdZ8SjzGLxmJRzQX", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t all u:User, w:Work | some i:Institution | w in u.profile implies (u in w.source or i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "JC8Tij8o8GZb99gEJ", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 23:00:02"} {"_id": "Be9tfods3wXdGBwBY", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \tall w1, w2:Work, u:User, i:Id | ((w1 in u.profile and w2 in u.profile) and (w1.source = w2.source)) implies (w1.ids != w2.ids)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "AKdF2QFrkxvaWF6sX", "msg": "This variable is unused.", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 23:45:37"} {"_id": "KkpiWfQJEnGi6C6QA", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n \tall w:Work, u:User | w in u.visible implies w in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w:Work | w in u.profile implies lone (u.visible & w)\n}", "derivationOf": "DuZsLXyzw82JpirkE", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-21 18:56:33"} {"_id": "DDYSSpN5vYzHrReMi", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u:User, w:Work | w in u.profile implies lone (u.visible & w)\n}", "derivationOf": "myrHBXNK8dFSZXgHY", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 22:29:02"} {"_id": "Yzj4LAeBrvsofmxKJ", "cmd_c": true, "cmd_i": 2, "cmd_n": "Inv3OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { \n\tall u:User ,i:Institution | u.profile.source = u || u.profile.source = i\n}\n\n\npred Inv3 { \n\tall u:User , s:Source| lone (u.profile.source & s).ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User , w:Work | w in u.profile implies (lone u.visible & w)\n}", "derivationOf": "eHPEX2mg9yqXNptu6", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Source}\nRight type = {this/Work->this/Id}", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 21:40:45"} {"_id": "q8NSdChfz9S6zmgkD", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | (w1 in u.visible and w2 in u.visible) implies (no (w1.ids & w2.ids) and (w1.source = w2.source or w1.source != w2.source))\n}", "derivationOf": "SG6CCnX9odrCeKHXX", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:27:28"} {"_id": "xkJ5aaMkuXungtJeb", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work, i:Institution | w in u.profile implies u in w.source or i in w.source\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t \n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "Hvd7LddnNBnJRMGz3", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-8 19:44:58"} {"_id": "Hty6E3KdZD9R9GShH", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u : User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User | u.profile.source in u + Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u : User | all w1, w2 : Work | (w1 + w2) in u.visible implies (w1.ids != w2.ids and w1.source != w2.source)\n}", "derivationOf": "7YqMzCPMQJZZw6Tho", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-11-3 20:32:25"} {"_id": "LJrX2LupejcFSKcmn", "cmd_c": true, "cmd_i": 1, "cmd_n": "Inv2OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall u:User | u.visible in u.profile \n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User , w:Work | w in u.profile && one w.source\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "qTi7zNEdGnXWkA5Fs", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2019-10-21 14:46:32"} {"_id": "hFAvwd35YKTLSB6MT", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work, i:Institution | w in u.profile implies (u in w.source | i in w.source) \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "FpCoEkYY33X3TGZRK", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 19:17:35"} {"_id": "SWiE9rvfHvCu24Brt", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { \n\tall u:User | u.visible in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\n\tall u:User | all w:(u.profile) | (w.source) in (u + Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \tall u:User | all w:(u.visible) | lone w.ids\n}", "derivationOf": "ePB4odBt2sPq2vtgw", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 04:14:47"} {"_id": "iu7jCaZodeiZ4EXgP", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n \tall u:User, w:Work | w in u.profile implies (u in w.source or some i:Institution | i in w.source)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n \t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n all u:User, w1,w2:Work | ((w1 in u.visible and w2 in u.visible) and\n \t\t\t\t\t\t\t (w1.source = w2.source or w1.source != w2.source))\n implies no (w1.ids & w2.ids)\n}", "derivationOf": "snDjD335hmeJTbsub", "original": "JC8Tij8o8GZb99gEJ", "sat": 1, "time": "2020-1-9 01:14:52"} {"_id": "sYSZh38LNWkegT3Ct", "cmd_i": 1, "code": "/* \n Consider the following model of an online CV platform that allows a\n profile to be updated not only by its owner but also by external institutions,\n to certify that the user indeed has produced certain works. \n Works must have some unique global identifiers, that are used to\n clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n profile : set Work,\n visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n ids : some Id,\n source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tall w:Work, u:User | w in u.visible implies w in u.profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, w:Work, i:Institution | w in u.profile implies (u in w.source | i in w.source) \n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n \n}", "derivationOf": "hFAvwd35YKTLSB6MT", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "JC8Tij8o8GZb99gEJ", "sat": -1, "time": "2020-1-8 19:17:47"}