{"_id": "imaMtvfNrRhDdz6WK", "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\tvisible 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": "WGdhwKZnCu7aKhXq9", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 20:13:18"}
{"_id": "d64poXGgpvqcBzJis", "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  visible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | u.profile.source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s: Source, u: User| ((source.s & u.profile)<:ids).~((source.s & u.profile)<:ids) in iden\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n    \n \tall u : User | ^((u.profile&u.visible<:ids).~(u.profile&u.visible<:ids)) in iden   \n}", "derivationOf": "mDTRSf4znopRBnDrg", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/Work}\nRight type = {this/Work->this/Id}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-11 23:20:15"}
{"_id": "zpuy27ZeEjibswQt5", "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\tvisible in 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 Institution+u\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 disj w1,w2 : u.profile | no (w1.ids & w2.ids)\n}", "derivationOf": "ZkdJRtkj3AwLMfi8u", "msg": "The name \"user\" cannot be found.", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 20:17:13"}
{"_id": "ZHAPn5W7btnfLETEq", "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\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  \n   all u:User | all  w :u.profile |   (w.^(ids.~ids) & u.visible) \n\n}", "derivationOf": "b5tGwWoiX2ZzEytBY", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Work}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-24 12:25:58"}
{"_id": "6uCDz8LPcehsRMgCm", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \tall u : User, w : u.visible | no (u.profile - w).ids & w.ids\n}", "derivationOf": "dcJL4LFMmipB53emu", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-23 13:17:58"}
{"_id": "JYQSzWN5QvpH7LGiK", "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  visible = (visible & profile)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | (u.profile).source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  all u : User, disj w1, w2 : u.profile {\n    (w1.source = w2.source) implies no (w1.ids & w2.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, id : u.visible.ids | one ((u.visible.ids) & id)\n}", "derivationOf": "o5gRnPRb2yS5G8tAw", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 18:26:07"}
{"_id": "Bw5DLo2pnci2KZ4gF", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.vsibile & u.profile) | (no (v1.ids & v2.ids)) and (all v : (Work - v1 - v2) | (no (v1.ids & v.ids)) and (no (v2.ids & v.ids))))\n}", "derivationOf": "NoThS2Qgf6dexm4By", "msg": "The name \"vsibile\" cannot be found.", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:26:53"}
{"_id": "Zu5LzCxQGrL2kQLcD", "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 | profile.w1.ids = profile.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": "yD7JXmqpBs9nQTTB9", "msg": "The join operation here always yields an empty set.\nLeft type = {this/User}\nRight type = {this/Work->this/Id}", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 16:53:37"}
{"_id": "bT73ToJKc96iAugzy", "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| some i:Institution | u.profile.source = u + 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": "iKzY9jPFtQBpsugzu", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 16:50:38"}
{"_id": "asLCTCkDwjDqYc9QF", "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 | no ((u.profile.source) - Institution - u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u:User , disj w1,w2:(u.profile) | (w1.ids = w1.ids-w2.ids) and (w2.ids = w2.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": "mvvcAwkoMnusg68nJ", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:27:12"}
{"_id": "upvcWnQpFugRmfDh7", "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\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  all u:User | all  w :u.profile |lone (ids.(w.ids) & u.visible)  \n  \n  \n\n}", "derivationOf": "3ycq5XwBZpuZfnChn", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 12:09:41"}
{"_id": "6jJJjYv5YCWa6XWbt", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u1 : User , w1,w2 = u1.profile | 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": "TvSpapKu3YwpZrjzj", "msg": "This cannot be an exactly-of expression.", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 20:20:20"}
{"_id": "hXs8bwckhv8uPCjDK", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \t\n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User, disj v1,v2 : u.visible | v1 != v2 \n}", "derivationOf": "Ek4T7PPT2ozcveGoL", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:36:28"}
{"_id": "ondqEGP4iaGCSkAbP", "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\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall s: Source, u: User | all disj w1, w2: (u.profile & source.s) | 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(all u : User | all disj v1, v2 : (u.profile & u.visible) | no (v1.ids & v2.ids))\n\n}", "derivationOf": "wQHGnAWZP7NCbH3ZZ", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:32:49"}
{"_id": "rcc6rb8D7mgkr9akM", "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, v : u.visible | v 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, p:u.profile | p.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": "SCdiLvmtiEYzGTNSt", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-8 01:51:54"}
{"_id": "RYh76MjdXAQmG2A8y", "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\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\tall u : User | all disj w1, w2 : (u.profile) {\n      \tall id : w1.ids | id not in w2.ids\n      \tall id : w2.ids | id not in w1.ids\n    }\n}", "derivationOf": "pzDRXSigBTGuz34P3", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:38:18"}
{"_id": "RXqyGkRXWuhcWyok3", "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, v : u.visible | v in u.profile\n\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, p:u.profile | p.source in u + Institution\n\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, p: u.profile | p in u.visible\n}", "derivationOf": "WYmsbvmmyXseY9dm5", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-8 02:16:35"}
{"_id": "aDgFJEQE4xRRgGnhe", "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 | all id1,id2 : Id | no u.profile.id1 & u.profile.id2\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "QQ5qbh7bijex7gZg4", "msg": "This cannot be a legal relational join where\nleft hand side is u . (this/User <: profile) (type = {this/Work})\nright hand side is id1 (type = {this/Id})", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-26 17:47:05"}
{"_id": "pBLxAY9n4tN5QH6Mq", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+Institution)\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  always (all u : User, p : u.profile | some p.ids)\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\talways (all u : User | all disj v1, v2 : u.visible | no (v1.ids & v2.ids))\n}", "derivationOf": "75QSpd8je2avvfSbj", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:42:03"}
{"_id": "S9LwYs3MCBxKWgohJ", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u1 : (User + Institution) , w1,w2 :u1.profile | some (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": "mFr6HtDeaS7vj6Yzv", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:24:35"}
{"_id": "rHJYxWMo5Z9y2p4zR", "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 | visible.w implies some 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": "WGdhwKZnCu7aKhXq9", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/User}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-12-1 22:55:37"}
{"_id": "9Abu3zZet9MDTwux2", "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| no 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": "9E4CEbnthL2Q9vcd5", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-26 16:51:57"}
{"_id": "kxdRtwLzfARCgcMvK", "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  visible = (visible & profile)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | (u.profile).source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  all u : User, disj w1, w2 : u.profile {\n    (w1.source = w2.source) implies no (w1.ids & w2.ids)\n  }\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \n}", "derivationOf": "ZvRNuu5nTgokKrYGB", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 18:17:45"}
{"_id": "vFD2KZSaY9Y2QmgbZ", "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 disj w:Work | w in User.profile \n}", "derivationOf": "rE8S9uvA9uGW28sPW", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-9 18:42:03"}
{"_id": "ED4gx4yyqFE9nWc2q", "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\tvisible in 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 Institution+u\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u:User, s:Source | all disj w1,w2:(u.profile & source.s) | 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\t\n}", "derivationOf": "9PMKBpyKxpK2Cpw8N", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:20:44"}
{"_id": "urF8f7QFDGDxry5p8", "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\tvisible in 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 s: Source | all id1, id2: ((source.s) & User.profile).ids | id1 != id2\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "SothKusMS45g2B4H6", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-12 21:24:43"}
{"_id": "TbySvMaWLCqHJQHY2", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u1 : User , w1,w2 :u1.profile | 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": "6jJJjYv5YCWa6XWbt", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:20:57"}
{"_id": "PMBoBekFv9nqzeHqL", "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 id1,id2 : Id | all u:User | (id1.ids in u.profile and id2.ids in u.profile) implies id1!=id2\n  }\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n}", "derivationOf": "3gpmotHKyDdE8AhFh", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Id}\nRight type = {this/Work->this/Id}", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 19:29:43"}
{"_id": "Gu2gjhxr3DQhnSBQF", "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\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  always (all u : User, vis : u.visible, v : (u.profile - vis) | no (vis.ids & v.ids))\n\n}", "derivationOf": "vfs4wkmA6GBTmkJ8h", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:35:35"}
{"_id": "HZviJzYvuMWL3uA5P", "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 |all w:Work | w in u.profile implies (w.source in 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 w1,w2:Source.profile | 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\tall u:User | all w1,w2 : u.profile | (w1 in u.visible and w2 in u.visible) implies w1=w2\n}", "derivationOf": "jkjFKFzWYgaXdbAtd", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-14 00:33:15"}
{"_id": "p65WKPKmjQ38iavQs", "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\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  all u:User | all  w :u.profile |lone (ids.(w.ids) & u.visible)  \n}", "derivationOf": "AXb6yYRciSJxF3Ecj", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 11:58:33"}
{"_id": "dNrp2APxdeS2yMjqF", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User,disj v1,v2 : u.visible |  v1.source = v2.source implies v1.ids not in v2.ids\n}", "derivationOf": "vqMypXh6bNSS52Fek", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 21:00:17"}
{"_id": "rE8S9uvA9uGW28sPW", "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 disj w:Work | w in profile \n}", "derivationOf": "AZXBwLT76EAEerBuv", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-9 18:41:53"}
{"_id": "wuSws8EJD3krFohoX", "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\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  always all u : User | all disj v1 v2 : u.visible | not (v1.ids & v2.ids)\n\n}", "derivationOf": "aoy3amK6shK4LLk82", "msg": "There are 1 possible tokens that can appear here:\n[", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:27:43"}
{"_id": "aZ3qKnJ5LDSwouCc6", "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\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\tall u : User | all w1 : u.visible | all w2 : (u.visible - w1) {\n    \tw1 not in w2\n      \tw2 not in w1\n    }\n}", "derivationOf": "F2cd6zn4CrXXLd2KW", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:48:14"}
{"_id": "ENjAMSk99TBCMK8kR", "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  visible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  profile.~profile in iden and profile.Work 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": "BMQ56ZmwtE2xtFdT9", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/User}\nRight type = {this/Institution}", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-11 23:05:17"}
{"_id": "6M5uWiAsYNPYxaMuh", "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\nvisible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\nall u : User, w: Work | u->w implies w->u or w-> 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": "iiqgpDvb4EEJ8LTw3", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/User->this/Work}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-12-17 11:01:22"}
{"_id": "HCEWdQBvg2iiZZidR", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : u.visible | all v : (u.profile - (v1 + v2)) | (no v1.ids & v2.ids) and (v1.ids + v2.ids in v.ids))\n}", "derivationOf": "M748dLa3aYMtRc8w6", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:53:48"}
{"_id": "suAsTZAnjMXfabkoW", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User, disj v1, v2 : (u.visible & u.profile) | (no (v1.ids & v2.ids)) and (all v : (Work - v1 - v2) | (no (v1.ids & v.ids)) and (no (v2.ids & v.ids))))\n}", "derivationOf": "PKXZNcG7hmrjQBGth", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:24:22"}
{"_id": "ZxZCCFyqeH3Bjme3k", "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\tvisible in 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 || some (w.source) & Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u : User, disj w, w1 : u.profile | 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": "7XArGFQX68y8vo5ur", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-12-4 18:06:51"}
{"_id": "4TPMcQSQcQ253uhmN", "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\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\tall u : User | all disj w1, w2 : u.visible {\n    \tno id : w1.ids | id in w2.ids\n    \tno id : w2.ids | id in w1.ids\n    }\n}", "derivationOf": "aZ3qKnJ5LDSwouCc6", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:49:42"}
{"_id": "TvSpapKu3YwpZrjzj", "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 , s : u.profile | some (s.source & u) or some (s.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": "BjvCiu6CP2CNijiGn", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 20:16:23"}
{"_id": "KPBk9f8Z7mBfMf4Ho", "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 | no ((u.profile.source) - Institution - u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  all disj w1,w2 : Work | w1.id != w2.id \n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "r7Bg4QGBKhQAfN75i", "msg": "The name \"id\" cannot be found.", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:20:22"}
{"_id": "EGDzcTeJZGhb7rMDh", "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 w : Work , u : User | w in u.profile implies always (w.source = u or w.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": "s24Bc38fMWfdDhZLY", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-9 18:31:44"}
{"_id": "6s3B6zPQXuwjh7pvK", "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, v : u.visible | v in u.profile\n\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, p:u.profile | p.source in u + Institution\n\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u:User, p:u.profile | some p.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\tall u:User, p: u.profile | lone p in u.visible\n}", "derivationOf": "bhvK5YXXnLjp4Ybbs", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-8 01:58:40"}
{"_id": "cb97iAYbKjexqBEBZ", "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 | one u: User | w in u.profile implies w.source in 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": "vsMP8TgtbCnPH7sGL", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:00:08"}
{"_id": "224vRdir3EssfcBoE", "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.source = w2.source implies always 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": "uMsN53pndotnKydre", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-9 18:35:37"}
{"_id": "Segj9dR5dC3ZdZhok", "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": "bkhBm9TWQhFhkvL8G", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-9 18:18:35"}
{"_id": "h8RrSHEzBdatwyqe4", "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\tvisible in 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 || some (w.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": "Rwf3i7xykeaAHM5hx", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-12-4 18:01:03"}
{"_id": "9M6zbBiazR8PqiQTW", "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\tvisible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tUser.profile.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": "65jfeXCaQqrmMEvad", "msg": "The name \"Instituition\" cannot be found.", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-12-4 17:55:41"}
{"_id": "w9Pni26pDKcTHJHrJ", "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\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\t\tall w1,w2 : User.profile | visible.w1 = visible.s2 implies w1=w2\n}", "derivationOf": "aDgFJEQE4xRRgGnhe", "msg": "The name \"s2\" cannot be found.", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-26 18:16:15"}
{"_id": "itZwxM5bQccnRE7YX", "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 i:Institution | no u.profile.source = u&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": "ER4DYe27yDT3WB5at", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {none}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-26 16:51:26"}
{"_id": "LuQcDHFTekaQ6aYNd", "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\tvisible in 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 s: Source | all disj w, w1: ((source.s) & User.profile) | 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": "nhh4Wfpm2rDBqApSo", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-12 21:44:39"}
{"_id": "s22Wv7kzyphZts7aZ", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User, disj v1, v2 : u.visible, v : (u.profile - v1 - v2) | (no (v1.ids & v2.ids)) and (no (v1.ids & v.ids)) and (no (v2.ids & v.ids)))\n}", "derivationOf": "CkyLvW3tuhSvb9FEM", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:10:02"}
{"_id": "cRYstWNiWBsEjbXAH", "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\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  all u:User | all disj  w1, w2 :u.profile | some (w1.ids & w2.ids) implies no((w1 + w2)& u.visible) \n}", "derivationOf": "pWhfCiKCArpRx3Ezm", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 11:40:02"}
{"_id": "rNoKyo8XiG6mezrAP", "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\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  all u:User | all  w :u.profile |lone (ids^.(w.ids) & u.visible)  \n}", "derivationOf": "sJ3J7LovMtRLfoySR", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-24 11:56:54"}
{"_id": "ZpG7jHL5yPv6uCm8C", "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\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  \n   all u:User | all  w :u.profile | lone ((w.^((ids.~ids) :> u.profile)) & u.visible)\n  \n  \t\t\t\t\t\t\t\t\t\n  \t\t\t\t\t\t\t\t\t\n  \n  \n  \n}", "derivationOf": "eGCJHHgWF6a4Qesy5", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-11-24 12:39:19"}
{"_id": "aTKAWuJcPFmFWcqmF", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (no (v1.ids & v2.ids)) and (all v : (u.profile - v1 - v2) | (no (v1.ids + v2.ids) & v.ids)))", "derivationOf": "cGyLmBNEKBpJcEo6H", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:33:37"}
{"_id": "J3C8szYqBqH6a3su7", "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\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  all u:User | all disj  w1, w2 :u.profile | some (w1.ids & w2.ids) implies one((w1 + w2)& u.visible) \n}", "derivationOf": "u4kawM76SSv6XGeyb", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 11:41:04"}
{"_id": "siDnkjxvNxXNymWdE", "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 w : User.profile | all id1,id2 : Id | id1 in w.ids implies id2 not in w.ids\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "GGqDCyMcj6BA5ujMT", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 17:45:36"}
{"_id": "hqZj6LnFnCFmhybT6", "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: User.profile | 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": "Y9KNwbvWtxChwpfLs", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 21:51:12"}
{"_id": "ea8PuKjaiBGGQNLke", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User, disj v1, v2 : u.visible, v : u.profile | (no v1.ids & v2.ids) and (v1.ids + v2.ids in v.ids))\n}", "derivationOf": "enSKJy6p2P66Gkit7", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:56:32"}
{"_id": "YaaEvvZNkT7MnA4uD", "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\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\tall u : User | all disj w1, w2 : (u.profile) {\n      \tall id : w1.ids | id not in w2.ids\n    }\n}", "derivationOf": "4bAFcN4Hpvfzdi5Xb", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:46:15"}
{"_id": "szkM8RXrDHxJXjoWh", "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  visible = (visible & profile)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | (u.profile).source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  all u : User, disj w1, w2 : u.profile {\n    (w1.source = w2.source) implies no (w1.ids & w2.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, id : u.visible.ids | one (id.~ids)\n}", "derivationOf": "FdNnTZdn5NdAa88vo", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 18:23:56"}
{"_id": "JZnzmkg7ctqjhtRc4", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \t\n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User , v1,v2 : u.visible | v1 != v2 \n}", "derivationOf": "cHSHvZhgwJwtEdK7z", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:34:36"}
{"_id": "bhvK5YXXnLjp4Ybbs", "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, v : u.visible | v 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, p:u.profile | p.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, p:u.profile | some p.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "rcc6rb8D7mgkr9akM", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-8 01:54:53"}
{"_id": "w2bDYx8vjxE6fLwyZ", "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 : User.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\t\t\n}", "derivationOf": "MBMQyMNLGPwmn2fNd", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 18:20:04"}
{"_id": "f5xZMkN3c78uoyg3L", "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\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  all u:User | all disj  w1, w2 :u.profile |  no (w1.ids & w2.ids) \n}", "derivationOf": "Tfof9b9XwADcwtrfQ", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 11:38:26"}
{"_id": "iymMqre5JtJunhJNe", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \t\n\tall u: User | (u.visible->u.visible) & ^((u.profile<:ids).~(u.profile<:ids)) in iden\n}", "derivationOf": "6uCDz8LPcehsRMgCm", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-11-23 13:19:10"}
{"_id": "Y9KNwbvWtxChwpfLs", "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": "WGdhwKZnCu7aKhXq9", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 21:49:25"}
{"_id": "cqCymmtRQsX3zT2B8", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \t\n\tall u: User, disj w1, w2 : u.visible | no (w1->w2) & ^((u.profile<:ids).~(u.profile<:ids))\n}", "derivationOf": "T56uAyWtGEDjXvSr3", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-11-23 13:59:34"}
{"_id": "n5BoJ6epbkHyN5M7X", "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\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  always all u : User, all  disj v1 v2 : u.visible | not v1.id = v2.id\n\n}", "derivationOf": "pJtKj9z48jNyhC7yJ", "msg": "There are 8 possible tokens that can appear here:\nNAME disj exh part private seq this var", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:26:44"}
{"_id": "rZSDM5tCEHd8QkaTx", "code": "/* \n    Consider the following model of an online CV platform that allows a\n    profile to be updated not only by its owner but also by external institutions,\n    to certify that the user indeed has produced certain works. \n    Works must have some unique global identifiers, that are used to\n    clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n    profile : set Work,\n    visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n    ids : some Id,\n    source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n\tvisible in 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 s: Source, u: User | all disj w, w1: ((source.s) & u.profile) | 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": "aKSW6pGzLg8gzAJof", "original": "WGdhwKZnCu7aKhXq9", "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": 598.9921875, "y": 318.4}, "ShouldBeAccepted": {"x": 479.19375, "y": 79.6}, "User0": {"x": 718.790625, "y": 79.6}, "User1": {"x": 239.59687499999995, "y": 79.6}, "Work0": {"x": 598.9921875, "y": 159.2}, "Work1": {"x": 958.3875, "y": 79.6}, "Work2": {"x": 598.9921875, "y": 238.79999999999998}}, "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": "2021-1-12 21:45:42"}
{"_id": "6QP7km3vTtceS9nGY", "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\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": "cL8EusGq4rPGN5khw", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-11-26 17:40:28"}
{"_id": "uMsN53pndotnKydre", "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 disj w : Work , u : User | w in u.profile implies always (w.source = u or w.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": "EGDzcTeJZGhb7rMDh", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-9 18:32:27"}
{"_id": "4FkRpJ8pfPoiCGfdq", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \t\n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User, v1,v2 : u.visible | v1.source = v2.source implies no (v1.visible & v2.visible)\n}", "derivationOf": "Gayud4PDszaEndMJB", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:46:23"}
{"_id": "ZEp9HpcS2ySaYAPEm", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (no (v1.ids = v2.ids)) and all v : (u.profile - v1 - v2) | (no v1.ids & v.ids) and (no v2.ids & v.ids))\n}", "derivationOf": "RWvQ5bXznHPMYwNwK", "msg": "This expression failed to be typechecked line 45, column 70, filename=/tmp/alloy_heredoc434981618894999154.als", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:42:24"}
{"_id": "3KJMfKZE8f4EGP2vD", "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": "WGdhwKZnCu7aKhXq9", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 23:17:47"}
{"_id": "k66hCyXHDp7k982vt", "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": "YZwnyt5wn5PJNbFyY", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-14 00:23:57"}
{"_id": "Rwf3i7xykeaAHM5hx", "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\tvisible in 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 || some w.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": "62FJmwHbRsuX46W75", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-12-4 18:00:46"}
{"_id": "kB4hoAPKaRipDLWPw", "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 | u.profile.source in u + Institution\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": "yGoPvzv5MJZw7DFn8", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:02:26"}
{"_id": "YZwnyt5wn5PJNbFyY", "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 | 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": "WGdhwKZnCu7aKhXq9", "msg": "This variable is unused.", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-14 00:23:48"}
{"_id": "b38vy9MqrXhSBsskY", "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 | no ((u.profile.source) - Institution - u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  all disj w1,w2 : Work | w1.ids != w2.ids \n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "KPBk9f8Z7mBfMf4Ho", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:20:29"}
{"_id": "F3f9ZFzeRgJiX9aNf", "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\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  always (all u : User, vis : u.visible, v : (u.visible - vis) | no (vis.ids & v.ids))\n\n}", "derivationOf": "Gu2gjhxr3DQhnSBQF", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:36:23"}
{"_id": "TaBzrQ5oabTpeo7yH", "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, i : Institution, w : u.profile | always( w.source =u or w.source = Institucion) \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": "idLMPScmQomSF2TJB", "msg": "The name \"Institucion\" cannot be found.", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-9 18:27:49"}
{"_id": "pA7iBT6ddqGG4gZ7g", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User, disj v1, v2 : u.visible, v : u.profile | (no (v1.ids & v2.ids)) and (v1.ids + v2.ids in v.ids))\n}", "derivationOf": "ea8PuKjaiBGGQNLke", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:57:03"}
{"_id": "Ame5hxtykTt63NHfW", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+Institution)\n\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  always (all u : User, p : u.profile | no p.ids & Id)\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\talways (all u : User | all disj v1, v2 : u.visible | no (v1.ids & v2.ids))\n}", "derivationOf": "pBLxAY9n4tN5QH6Mq", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:42:23"}
{"_id": "gacATtzubAJn6mdv4", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \t\n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User, v1,v2 : u.visible | no (v1.ids & v2.ids) and v1.source != v2.source\n}", "derivationOf": "QEypNqZryKnmBaYcP", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:43:31"}
{"_id": "Fkr86cmFHHZ2ra3qZ", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \tall u : User, w : u.visible | no (u.visible & u.profile - w).ids & w.ids\n}", "derivationOf": "Qi7JtDLn3i8iQCjCt", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-23 13:05:46"}
{"_id": "EYKRmyEuYsCYLSs9g", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User,disj v1,v2 : u.visible |  v1.source = v2.source implies v1.ids not in v2.ids\n}", "derivationOf": "w3LLmo8KSdQk7FWw4", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:54:02"}
{"_id": "HnqEW5cXywgn9eydr", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : u.visible | all v : (u.profile - (v1 + v2) | (no v1.ids & v2.ids) and (v1.ids + v2.ids in v.ids)\n}", "derivationOf": "tu5WEFtXKXXKHBsLM", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:53:30"}
{"_id": "pzDRXSigBTGuz34P3", "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\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\tall u : User | all disj w1, w2 : (u.visible) {\n      \tall id : w1.ids | id not in w2.ids\n      \tall id : w2.ids | id not in w1.ids\n    }\n}", "derivationOf": "3fmxitANynErRnKGL", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:36:54"}
{"_id": "LhMZusg2gyhEcAjig", "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\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\tall u : User | all disj w1, w2 : (u.visible) {\n      \tall id : w1.ids | id not in w2.ids\n      \tall id : w2.ids | id not in w1.ids\n    }\n}", "derivationOf": "jhCgnWD2hgooSrs7C", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:44:40"}
{"_id": "enSKJy6p2P66Gkit7", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User, disj v1, v2 : u.visible, v : (u.profile - v1 - v2) | (no v1.ids & v2.ids) and (v1.ids + v2.ids in v.ids))\n}", "derivationOf": "oRxo3QnNNbyq7XtuM", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:55:09"}
{"_id": "gPzqymCB4TzAZAuEJ", "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 | no ((u.profile.source) - Institution - u)\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 w:Work | ((w in User.profile)) implies ( w in User.visible)\n\n}", "derivationOf": "toiA4oJoSPPzXgRxM", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:38:15"}
{"_id": "tqAteka6hsGNTGujY", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User, disj v1, v2 : u.visible | (no (v1.ids & v2.ids)) | all v : (u.profile - v1 - v2) | (no (v1.ids & v.ids)) and (no (v2.ids & v.ids))\n}", "derivationOf": "jYJTztReJTSaPZr5Y", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:13:08"}
{"_id": "46e5Zs8WnEXEQG8i5", "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\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  \n   all u:User | all  w :u.profile |  lone ((w.^(ids.~ids) & u.visible).ids :> (w.^(ids.~ids) & u.visible).ids  in iden )\n\n}", "derivationOf": "4hKQmptX3Zv83ger3", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/Id}\nRight type = {univ->univ}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-24 12:29:58"}
{"_id": "ptyCZduGqkNe7sEJN", "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 : Source.profile | w1.ids = w2.ids implies w1=w2\n  }\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n}", "derivationOf": "PMBoBekFv9nqzeHqL", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 19:31:34"}
{"_id": "Chzrr8RQHCFDJoPgb", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \t\n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User, v1,v2 : u.visible |  no (v1.ids & v2.ids)\n}", "derivationOf": "Q8MwHWautKyhFryHJ", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:47:08"}
{"_id": "yWZoExNQsvAjka8Qa", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \tall u : User, disj w1, w2 : u.visible | w1 + w2 in u.profile => no w1.ids & w2.ids\n}", "derivationOf": "vmFkLNfdtzdg7sbh6", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-23 12:58:01"}
{"_id": "MHw5nzdewQYJdMMrb", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User, v1,v2 : u.visible |  v1.ids not in v2.ids\n}", "derivationOf": "3uMhhsovPuiBmLMYR", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:57:51"}
{"_id": "qNPcJ6aAQGSEcmymJ", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : u.profile | v1.ids = v2.ids implies ((v1 + v2) not in u.visible))\n}", "derivationOf": "YJhRb5qQPJojk32de", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:44:40"}
{"_id": "p7af6C5yAaovSkTrs", "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: Work | some u: User | w in u.profile implies w.source in u or 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": "khheqZ9hAdmDhFmNn", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Institution}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 21:58:23"}
{"_id": "P5AAyb396BNmK6bwM", "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  visible.Work in 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": "WGdhwKZnCu7aKhXq9", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-11 23:02:04"}
{"_id": "vsMP8TgtbCnPH7sGL", "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 | some u: User | w in u.profile implies w.source in 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": "p7af6C5yAaovSkTrs", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 21:58:40"}
{"_id": "3gpmotHKyDdE8AhFh", "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\tid1,id2 : Id | all u:User | (id1.ids in u.profile and id2.ids in u.profile) implies id1!=id2\n  }\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n}", "derivationOf": "x56GPuttebDmdvXdR", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-26 19:29:33"}
{"_id": "mvvcAwkoMnusg68nJ", "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 | no ((u.profile.source) - Institution - u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u:User , disj w1,w2:(u.profile) | w1.ids = 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": "uKjSFXfxNiTwYJAif", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:26:32"}
{"_id": "kghxDwk5JgpZokcn8", "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\tvisible in 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": "72iW5NWrydRThtb8r", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-12 21:13:19"}
{"_id": "hxnD3kPQTANreufxn", "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\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\tall u:User, x, y:Work | (x in u.visible and y in u.visible) implies no (x.ids & y.ids)\n}", "derivationOf": "p8y7tCXSPmQtorjzQ", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:28:05"}
{"_id": "AZXBwLT76EAEerBuv", "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.source = w2.source implies always 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": "4jZyLJacNng3w9QHq", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-9 18:40:09"}
{"_id": "LSwzDd9hdCMgBr4Ts", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \t\n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User, disj v1,v2 : u.visible | no (v1.ids & v2.ids) \n}", "derivationOf": "xwpTsiqSfedoyZrDz", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:39:06"}
{"_id": "dvh4iwu68bEKAZq3E", "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": "HWQa8dbKztDXaQkiD", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-11-26 16:48:40"}
{"_id": "oqq5F7w4bf3ygfPDT", "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 u:User | all w1,w2 : Work | (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}", "derivationOf": "egWKPBMZEBkujFzQ7", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 19:26:15"}
{"_id": "EL2sEYBeWskbEEF9E", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User, disj v1, v2 : u.visible, v : (u.profile - v1 - v2) | (no (v1.ids & v2.ids)) and (no v1.ids & v.ids) and no v2.ids & v.ids)\n}", "derivationOf": "nnds48PCEaoBrXFgx", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:00:34"}
{"_id": "PbLpPh8au5znQyi7E", "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\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  all u:User | all disj  w1, w2 :u.profile | some (w1.ids & w2.ids) implies lone((w1 + w2)& u.visible) \n}", "derivationOf": "KGnvpJ2nbxMR2wt4K", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 11:41:31"}
{"_id": "6YpRDJA3xEXDL8gJ2", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \t\n\tall u: User | all w1, w2 : u.visible | (w1->w2) & ^((u.profile<:ids).~(u.profile<:ids))) in iden \n}", "derivationOf": "Ar4EzMv4dfAocxhPh", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-23 13:56:58"}
{"_id": "TedxxZDsaPYWZkGB8", "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:Work | w in u.profile implies (w.source in 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": "k66hCyXHDp7k982vt", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-14 00:25:16"}
{"_id": "eGCJHHgWF6a4Qesy5", "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\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  \n   all u:User | all  w :u.profile | lone (w.^(ids.~ids) & u.profile) & u.visible\n  \n  \t\t\t\t\t\t\t\t\t\n  \t\t\t\t\t\t\t\t\t\n  \n  \n  \n}", "derivationOf": "wfzGeqcJXGEejeWbk", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 12:36:24"}
{"_id": "WGA4CSN5fdGWnyqjF", "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\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall s: Source, u: User | all disj w1, w2: (u.profile & source.s) | no w1.ids & w2.ids\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "AWXhTbmMLaCgYTAfj", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-14 12:52:49"}
{"_id": "gdzbFs8Arp2GNoPAF", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User, disj v1, v2 : u.visible | (no (v1.ids & v2.ids)) and (all v : (u.profile - v1 - v2) | (no (v1.ids & v.ids)) and (no (v2.ids & v.ids))))\n}", "derivationOf": "s5g7xbB9Zy7AJAdKi", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:13:32"}
{"_id": "atQCMFrNTW9S93sMg", "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\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\t   all u:User | all  w :u.profile | lone ((w.^((ids.~ids) :> u.profile)) & u.visible)\n\n}", "derivationOf": "WGdhwKZnCu7aKhXq9", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-14 22:54:53"}
{"_id": "fiqDei2NJ3SmkGriC", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : u.visible | all v : (u.profile - v1 - v2) | (no v1.ids & v2.ids) and (no v1.ids & v.ids) and (no v2.ids & v.ids))\n}", "derivationOf": "stETGM5rzqrgZgnAm", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:01:46"}
{"_id": "BwQ4NtcipnohSfDDT", "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\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  all u:User | all w1 :u.profile |lone ( (ids.(w1.^ids)) & u.visible)\n}", "derivationOf": "WGdhwKZnCu7aKhXq9", "msg": "^ (this/Work <: ids) is redundant since its domain and range are disjoint: {this/Work->this/Id}", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 11:26:00"}
{"_id": "BWDKruFXT5NsRhSer", "cmd_c": true, "cmd_i": 3, "cmd_n": "Inv4OK", "code": "\n\nabstract sig Source {}\nsig User extends Source {\n    profile : set Work,\n    visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n    ids : some Id,\n    source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n    \n    all u: User, disj w1, w2 : u.visible | no w1->w2 & ^((u.profile<:ids).~(u.profile<:ids))\n}", "derivationOf": "WGdhwKZnCu7aKhXq9", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-11-23 14:33:36"}
{"_id": "CMnRFqpnfjZDkHtaa", "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 : Source.profile | w1.ids = w2.ids implies w1=w2\n  }\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  all u:User | lone u.profile.visible\n}", "derivationOf": "8j8uYwvAo9c3e2qsY", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 19:38:32"}
{"_id": "khheqZ9hAdmDhFmNn", "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: Work | some u: User, s: Source | w in u.profile implies w.source in u or s\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": "hqZj6LnFnCFmhybT6", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Source}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 21:57:59"}
{"_id": "EC6JKTFi8obQpJGkc", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tone  u1 : User |all  w1,w2 :u1.profile | 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": "xGr2Wkq7MbzFemjBN", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:28:10"}
{"_id": "Xb5ZntpJiyP7qdzsY", "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 | no ((u.profile.source) - Institution - u)\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 w:Work | ((w in User.profile) & (w in User.visible)) implies (one w in User.visible)\n\n}", "derivationOf": "D72F2bdem2834cH6c", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:37:40"}
{"_id": "vfs4wkmA6GBTmkJ8h", "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\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  always (all u : User, vis : u.visible, v : (u.profile - vis)| no (vis.ids & v.ids)\n\n}", "derivationOf": "vsetuQt35x7BuTWWe", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:35:24"}
{"_id": "cGyLmBNEKBpJcEo6H", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (no (v1.ids & v2.ids)) and (all v : (u.profile - v1 - v2) | (no (v1.ids + v2.ids) & v.ids))", "derivationOf": "g6quMA9pZ6hniju2h", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:33:31"}
{"_id": "4bAFcN4Hpvfzdi5Xb", "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\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\tall u : User | all disj w1, w2 : (u.profile) {\n      \tall id : w1.ids | id not in w2.ids\n      \tall id : w2.ids | id not in w1.ids\n    }\n}", "derivationOf": "LhMZusg2gyhEcAjig", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:45:40"}
{"_id": "PPuHBNc2FXhqzTiCo", "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  visible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | u.profile.source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s: Source, u: User| ((source.s & u.profile)<:ids).~((source.s & u.profile)<:ids) in iden\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n    \n    all u: User | (u.visible->u.visible) & ^((u.profile<:ids).~(u.profile<:ids)) in iden\n    all u: User | u.visible<:^((u.profile<:ids).~(u.profile<:ids)).~(u.visible<:^((u.profile<:ids).~(u.profile<:ids))) in iden\n}", "derivationOf": "M4hvWrXs9Y6waEhf3", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-11 23:14:59"}
{"_id": "77KnNHyLGLrEYa5C4", "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 or u.profile.source in Institution\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": "Gy39ANLAG7rX4qGfa", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:02:57"}
{"_id": "PeEwhqKQHjNeRukNi", "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  visible = (visible & profile)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | (u.profile).source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  all w1, w2 : Work, u : User {\n    (w1 != w2 and ((w1 + w2) in u.profile) and w1.source = w2.source) implies no (w1.ids & w2.ids)\n  }\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \n}", "derivationOf": "WGdhwKZnCu7aKhXq9", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 18:16:56"}
{"_id": "EeXrM4XFqTgYXwJzk", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (no (v1.ids & v2.ids)) and all v : (u.profile - v1 - v2) | not (v1.ids in v.ids and v2.ids in v.ids))\n}", "derivationOf": "XvF6qtQCbFc8FJsdh", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:36:41"}
{"_id": "MZEA8u4DfQkxrSTWc", "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\tvisible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u : User, p : u.profile | w.source = u || 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": "3XabBvEoWhoXWbWQ6", "msg": "The name \"w\" cannot be found.", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-12-4 17:57:45"}
{"_id": "u4kawM76SSv6XGeyb", "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\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  all u:User | all disj  w1, w2 :u.profile | some (w1.ids & w2.ids) implies lone((w1 + w2)& u.visible) \n}", "derivationOf": "cRYstWNiWBsEjbXAH", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 11:40:57"}
{"_id": "7PvpgEPP4cBDJgifZ", "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\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w: Work, u: User | lone w.ids in (u.profile.source & w.source)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "EJRn4GvJyYPk7b6SH", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:09:20"}
{"_id": "KuHJ4Frjmc4G7PGFx", "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\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  always (all u : User | all disj v1, v2 : u.visible | no (v1.ids & v2.ids))\n\n}", "derivationOf": "xu5LdChW5vvtQ2vKu", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:29:35"}
{"_id": "Rjt7QP7BYmNdyRKsR", "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  visible 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": "WGdhwKZnCu7aKhXq9", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-11 23:41:51"}
{"_id": "D72F2bdem2834cH6c", "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 | no ((u.profile.source) - Institution - u)\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 w:Work | (w in User.profile & w in User.visible) implies (one w in User.visible)\n\n}", "derivationOf": "gxpFrjZ6AXj8iwFmS", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:37:25"}
{"_id": "65jfeXCaQqrmMEvad", "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\tvisible 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": "WGdhwKZnCu7aKhXq9", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-12-4 17:54:31"}
{"_id": "9PMKBpyKxpK2Cpw8N", "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\tvisible in 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 Institution+u\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 disj w1,w2 : u.profile | no (w1.ids & w2.ids)\n}", "derivationOf": "wNw5DfXueZX9Nk3pr", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:17:41"}
{"_id": "oMSxwpMxQzdtKsp3J", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \tall u : User, w : u.visible | no ((u.visible & u.profile) - w).ids & w.ids\n}", "derivationOf": "Fkr86cmFHHZ2ra3qZ", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-23 13:06:09"}
{"_id": "jkjFKFzWYgaXdbAtd", "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 |all w:Work | w in u.profile implies (w.source in 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 w1,w2:Source.profile | 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": "DyBsgcfgfmpJYQBa8", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-14 00:31:24"}
{"_id": "qGn78W2AKv4WRLAgy", "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  visible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n    \n  profile.source in iden + User->Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  all s : Source | profile.(source.s<:ids.~(source.s<:ids)).~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": "Bs8HbZTepKgDKAEKn", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-11 23:57:29"}
{"_id": "Ekrxi95q7HgsyKCdd", "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\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  always (all u : User | all disj v1, v2 : u.profile | no (v1.ids & v2.ids))\n\n}", "derivationOf": "mcs5w7zEzjXgbJcvN", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:32:31"}
{"_id": "BMQ56ZmwtE2xtFdT9", "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  visible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  profile.~profile in iden + 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": "ZsvuDzEBaGabqjKWh", "msg": "+ can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {univ->univ}\nRight type = {this/Institution}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-11 23:04:25"}
{"_id": "xGr2Wkq7MbzFemjBN", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u1 : User , w1,w2 :u1.profile |  (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": "NP7aQqr9qRBExP5YD", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Source}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 20:26:03"}
{"_id": "PPzp38vTwGq5LE2pa", "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\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  always all u : User, disj v1 v2 : u.visible | not v1.id = v2.id\n\n}", "derivationOf": "n5BoJ6epbkHyN5M7X", "msg": "There are 3 possible tokens that can appear here:\n,  : =", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:26:50"}
{"_id": "nGF9xjJYRk7BJ22pD", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (no (v1.ids & v2.ids)) and all v : (u.profile - v1 - v2) | no (v1.ids + v2.ids) & v.ids)\n}", "derivationOf": "tgbHZ52KAvYTqHcFn", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:34:39"}
{"_id": "pP266RpwveCsZzifj", "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\nvisible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\nWork.source = User 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": "rcCSt8SwM3SwDL24n", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-12-17 11:14:25"}
{"_id": "tqr2hWjqSoFEW23fZ", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User, disj v1, v2 : u.visible, v : u.profile - v1 - v2 | (no (v1.ids & v2.ids)) and v1.ids not in v.ids and v2.ids not in v.ids)\n}", "derivationOf": "D9yEvqPTzdruDW8Cc", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:59:09"}
{"_id": "Ek4T7PPT2ozcveGoL", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \t\n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User, disj v1,v2 : u.visible \n}", "derivationOf": "hyQhdzoxjYJCyov8h", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 20:35:51"}
{"_id": "s24Bc38fMWfdDhZLY", "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\tone u : User | all i : Institution, w : u.profile | always( w.source =u or w.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": "Erth83HWR2xDRM2Pb", "msg": "This variable is unused.", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-9 18:28:38"}
{"_id": "uKjSFXfxNiTwYJAif", "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 | no ((u.profile.source) - Institution - u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u:User , disj w1,w2:(u.profile) | w1.ids = 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": "b38vy9MqrXhSBsskY", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:22:56"}
{"_id": "KGnvpJ2nbxMR2wt4K", "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\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  all u:User | all disj  w1, w2 :u.profile | some (w1.ids & w2.ids) implies lone((w1 + w2)& u.visible) \n}", "derivationOf": "J3C8szYqBqH6a3su7", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 11:41:07"}
{"_id": "Qtk5jB6csx7gpbTrt", "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| some i:Institution | no u.profile.source in u & 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": "PuF23k7NGTnQd5KLy", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-26 16:51:09"}
{"_id": "wMQWqaPKWFd2vBo8r", "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\tvisible in 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 Institution+u\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u:User, s:Source | all disj w1,w2:(u.profile & source.s) | 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\t\n}", "derivationOf": "ED4gx4yyqFE9nWc2q", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 20:20:46"}
{"_id": "CBnPFyXcSpCnrkQb3", "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\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": "77KnNHyLGLrEYa5C4", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 22:03:10"}
{"_id": "dEe5aW7qxo2uWpp2y", "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\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall s: Source, u: User | all disj w1, w2: (u.profile & source.s) | 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": "7PvpgEPP4cBDJgifZ", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 22:14:17"}
{"_id": "RaF8dECEWu9oEoPA6", "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\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\tall u : User | all disj w1, w2 : (u.visible) | w1.ids != w2.ids\n}", "derivationOf": "Yv2SZAbmvkDfew8Td", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:33:31"}
{"_id": "BjvCiu6CP2CNijiGn", "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 , s : u.profile | s.source = u or s.source = one 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": "Zm4wtdPyCNrp27eyr", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 20:15:35"}
{"_id": "MEcoDWG8jm3ngmaT4", "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  visible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n    \n  profile.source in iden + 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": "a6erQRBttyxTepeeB", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-11 23:47:52"}
{"_id": "eyBzSfmHkPNvPSafr", "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) or (u.profile.source in Institution)\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": "xR2hxYRXAsRiwjhAT", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:03:30"}
{"_id": "i9fxpK5p98K8HbLD3", "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  }\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  all w1,w2:Work | w1 in visible.(User.profile) and w2 in visible.(User.profile) implies w1=w2\n}", "derivationOf": "HZ8LBFSoKCR3N3frc", "msg": "Subset operator is redundant, because the left and right subexpressions are always disjoint.\nLeft type = {this/Work}\nRight type = {this/User}", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 19:41:14"}
{"_id": "KLQ8uGcmNbWHaqnsm", "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 | w in User.visible implies w 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": "3qvySMHAMfxzMkhSt", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:13:16"}
{"_id": "yD7JXmqpBs9nQTTB9", "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": "9Abu3zZet9MDTwux2", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-11-26 16:52:24"}
{"_id": "tZ3f4hRENJQkR3yxi", "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 u:User| one u.profile.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\t\t\n}", "derivationOf": "BhkzvuH6NKJtcHW2t", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 18:18:57"}
{"_id": "KpjojA5KsJnKPdsPK", "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  visible = (visible & profile)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | (u.profile).source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  all u : User, disj w1, w2 : u.profile {\n    (w1.source = w2.source) implies no (w1.ids & w2.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, id : u.visible.ids | one (id.~ids & u.visible)\n}", "derivationOf": "saRfhDzRS8BtF5YJ6", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 18:31:23"}
{"_id": "z9wqJPo3KWAb5gmjp", "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 visible.w implies some 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": "CJ6dWq2fFZKftneLf", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-12-1 22:56:04"}
{"_id": "uRfN48AMNbH6n99SB", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User,disj v1,v2 : u.visible |  v1 != v2 \n}", "derivationOf": "EYKRmyEuYsCYLSs9g", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:55:12"}
{"_id": "25xrM6Fpd2ygh7w2k", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \tall u : User, disj w1, w2 : u.visible + u.profile | w1 + w2 in u.profile => no w1.ids & w2.ids\n}", "derivationOf": "Sm4kKZzXq97CaQF67", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-23 12:57:50"}
{"_id": "3qvySMHAMfxzMkhSt", "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.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": "WGdhwKZnCu7aKhXq9", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:12:36"}
{"_id": "M4hvWrXs9Y6waEhf3", "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  visible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  profile.~profile in iden and User.profile.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": "ENjAMSk99TBCMK8kR", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-11 23:07:57"}
{"_id": "7iy8yLybciowhRd46", "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\nvisible 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": "WGdhwKZnCu7aKhXq9", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-12-21 11:15:29"}
{"_id": "SRmPqbXeQRHMrjuqk", "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\nvisible in profile\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.source -> u or w.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": "a8TnKzBSraqnWZWSh", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Source->this/User}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-12-17 10:53:43"}
{"_id": "idLMPScmQomSF2TJB", "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 | always(w in u.profile implies (w.source = u or 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": "Y2vuTpWEznkBiWoXY", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-9 18:24:16"}
{"_id": "yGoPvzv5MJZw7DFn8", "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 | u.profile.source in u or u.profile.source in Institution\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": "cb97iAYbKjexqBEBZ", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:02:10"}
{"_id": "DjHJPbAzkueL7emkn", "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  visible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n    \n  profile.source in iden:>(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": "EwdFarWYYptffagYb", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-11 23:45:24"}
{"_id": "vt2xY5hgHaeJ3MTQa", "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 : Source.profile | w1.ids = w2.ids implies w1=w2\n  }\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  all u:User | lone visible.(u.profile)\n}", "derivationOf": "CMnRFqpnfjZDkHtaa", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 19:38:51"}
{"_id": "xdenbmArEhgTzs2nT", "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  visible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | u.profile.source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s: Source, u: User| ((source.s & u.profile)<:ids).~((source.s & u.profile)<:ids) in iden\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n    \n \tall u : User | ^((u.profile<:ids).~(u.profile<:ids)) in iden   \n}", "derivationOf": "PPuHBNc2FXhqzTiCo", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-11 23:18:03"}
{"_id": "9wSNXytY9iRPb9T63", "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\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  all u:User | all  w :u.profile |lone (ids.(w.ids) & u.visible)  \n}", "derivationOf": "PbLpPh8au5znQyi7E", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 11:56:43"}
{"_id": "5BGZcafAfQmpX6g3G", "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 | 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": "224vRdir3EssfcBoE", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-9 18:37:13"}
{"_id": "NAgamoiGBm6iMXzmF", "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  visible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n    \n  User.profile.source in User.iden + 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": "DjHJPbAzkueL7emkn", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-11 23:46:01"}
{"_id": "8aogfjf7hXu56mCPX", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (no (v1.ids & v2.ids)) and all v : (u.profile - v1 - v2) | not (v1.ids & v.ids or v2.ids & v.ids))\n}", "derivationOf": "EeXrM4XFqTgYXwJzk", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Id}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:40:16"}
{"_id": "rXwaepdKrHK4kePNd", "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": "KLQ8uGcmNbWHaqnsm", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 20:13:30"}
{"_id": "iiqgpDvb4EEJ8LTw3", "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\nvisible in profile\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.source -> u.profile or w.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": "SRmPqbXeQRHMrjuqk", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Source->this/Work}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-12-17 10:54:19"}
{"_id": "GGqDCyMcj6BA5ujMT", "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 : User.profile | w1.ids = w2.ids implies w1=w2\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "6QP7km3vTtceS9nGY", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 17:43:31"}
{"_id": "vmFkLNfdtzdg7sbh6", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \tall u : User, disj w1, w2 : u.profile | w1 + w2 in u.profile => no w1.ids & w2.ids\n}", "derivationOf": "25xrM6Fpd2ygh7w2k", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-23 12:57:57"}
{"_id": "62FJmwHbRsuX46W75", "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\tvisible in 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 || 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": "MZEA8u4DfQkxrSTWc", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-12-4 17:57:55"}
{"_id": "pnyRMP7KAwbDoqrss", "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\nvisible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\nall u : User | profile.u + some Work implies 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": "5v2oofbFLBdRuvj7u", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-12-17 10:39:59"}
{"_id": "sitAbxKpYmNF4ZhmW", "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 | w in User.visible implies w 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": "WGdhwKZnCu7aKhXq9", "msg": "The name \"Profile\" cannot be found.", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-9 18:17:58"}
{"_id": "vnRiFCLHTXwn9jEiZ", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n    \n}", "derivationOf": "WGdhwKZnCu7aKhXq9", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-11-23 12:50:08"}
{"_id": "hyQhdzoxjYJCyov8h", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \t\n\tall u1 : User , disj w1,w2 :u1.profile | 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\tdisj (User.visible) \n}", "derivationOf": "JZnzmkg7ctqjhtRc4", "msg": "There are 1 possible tokens that can appear here:\n[", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 20:34:58"}
{"_id": "b3CTAo6gh9zDFYgjt", "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\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\tall u: User | u.visible->u.visible & ^((u.profile<:ids).~(u.profile<:ids)) in iden\n}", "derivationOf": "qFAZ2xmamcXgYico3", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-14 00:01:21"}
{"_id": "72iW5NWrydRThtb8r", "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\tvisible 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": "Yx9N8JxBAEn9HFuvi", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-12 21:11:02"}
{"_id": "RWtGkwkDbh2w96sPm", "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 u:User | all w1,w2 : Work | (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}", "derivationOf": "R3nMWarNsMJH4va8n", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 18:33:01"}
{"_id": "5v2oofbFLBdRuvj7u", "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\nvisible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\nall u : User | u.profile + some Work implies 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": "ydW9zkZRcBR4Fms4y", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-12-17 10:39:48"}
{"_id": "FB5HQ7uz49axQPyeS", "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 w1,w2: Work | 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\tall u : User | \n}", "derivationOf": "5BGZcafAfQmpX6g3G", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-9 18:39:37"}
{"_id": "tu5WEFtXKXXKHBsLM", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : u.visible | some (v1.ids + v2.ids) implies ((v1.ids + v2.ids) not in u.visible.ids))\n}", "derivationOf": "P5A9TvT2CEY7qbREm", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:51:49"}
{"_id": "dnxcFRcXcLm4muzjY", "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  always (all u : User, v : u.visible | v in u.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\talways (all u : User | all disj v1, v2 : u.visible | no (v1.ids & v2.ids))\n}", "derivationOf": "7q7dJm8oYzNuhmToo", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 22:40:26"}
{"_id": "XvF6qtQCbFc8FJsdh", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (no (v1.ids & v2.ids)) and all v : (u.profile - v1 - v2) | not (v1.ids = v.ids and v2.ids = v.ids))\n}", "derivationOf": "fXC6kwet6YGLQ7bir", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:35:52"}
{"_id": "ydW9zkZRcBR4Fms4y", "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\nvisible 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": "WGdhwKZnCu7aKhXq9", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-12-17 10:35:54"}
{"_id": "WYmsbvmmyXseY9dm5", "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, v : u.visible | v in u.profile\n\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tall u:User, p:u.profile | p.source in u + Institution\n\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, p: u.profile | lone p in u.visible\n}", "derivationOf": "6s3B6zPQXuwjh7pvK", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-8 02:16:21"}
{"_id": "dGb3fpcxxymrRaTiF", "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 : Source.profile | w1.ids = w2.ids implies w1=w2\n  }\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  all u:User | one visible.(u.profile)\n}", "derivationOf": "vt2xY5hgHaeJ3MTQa", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 19:38:57"}
{"_id": "nhh4Wfpm2rDBqApSo", "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\tvisible in 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 s: Source | all disj w, w1: ((source.s) & User.profile) | 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": "FwRemKGKSRjFC57op", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-12 21:43:54"}
{"_id": "H8dSSbLtgyzY95ETN", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \t\n\tall u: User | (u.visible->u.visible) & ^((u.profile<:ids).~(u.profile<:ids)) in iden\n}", "derivationOf": "TMfd3K3KkPepYaTdP", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-11-23 13:57:57"}
{"_id": "egWKPBMZEBkujFzQ7", "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 u:User | all w1,w2 : Work | (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}", "derivationOf": "5YCp5EYvFSqApvPPr", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 18:34:24"}
{"_id": "8t2cK9YGbYYWkmjSH", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profule | p.source in u+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\talways (all u : User | all disj v1, v2 : u.visible | no (v1.ids & v2.ids))\n}", "derivationOf": "dnxcFRcXcLm4muzjY", "msg": "The name \"profule\" cannot be found.", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:41:18"}
{"_id": "HWQa8dbKztDXaQkiD", "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 | w.visible in w.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": "WGdhwKZnCu7aKhXq9", "msg": "The join operation here always yields an empty set.\nLeft type = {this/Work}\nRight type = {this/User->this/Work}", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 16:48:11"}
{"_id": "jFFvncSMTCucsGdwd", "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\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  \n   all u:User | all  w :u.profile | lone  (w.^(ids.~ids) & u.visible )   \n\n}", "derivationOf": "zrrB8fuims863ihmg", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 12:20:39"}
{"_id": "97szMQdkknRFqeFLc", "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  visible = (visible & profile)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | (u.profile).source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  all u : User, disj w1, w2 : u.profile {\n    (w1.source = w2.source) implies no (w1.ids & w2.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, id : u.visible.ids | one (id.~ids & u.profile)\n}", "derivationOf": "KpjojA5KsJnKPdsPK", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 18:32:48"}
{"_id": "QwriCyuyEpSej7Ef9", "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\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  \n   all u:User | all  w :u.profile | lone  (w.^(ids.~ids) & u.visible) \n\n}", "derivationOf": "ZHAPn5W7btnfLETEq", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 12:26:02"}
{"_id": "QkSstKCniPDHYrobH", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : u.visible | all v : (u.profile - v1 - v2) | (no v1.ids & v2.ids) and (v1.ids + v2.ids in v.ids))\n}", "derivationOf": "ow2GXbL53jBk3cwtR", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:54:05"}
{"_id": "NoThS2Qgf6dexm4By", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User, disj v1, v2 : u.profile | (no (v1.ids & v2.ids)) and (all v : (Work - v1 - v2) | (no (v1.ids & v.ids)) and (no (v2.ids & v.ids))))\n}", "derivationOf": "suAsTZAnjMXfabkoW", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:24:32"}
{"_id": "x56GPuttebDmdvXdR", "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\tid1,id2 : Id | all u:User | (id1.ids in u.profile and id2.ids in u.profile) implies id1!=id2\n}\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n}", "derivationOf": "oqq5F7w4bf3ygfPDT", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-26 19:28:55"}
{"_id": "KFuwLCkgxJJoLZFcS", "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\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  always all u : User, disj v1 v2 : u.visible | not v1.ids & v2.ids\n\n}", "derivationOf": "PPzp38vTwGq5LE2pa", "msg": "There are 3 possible tokens that can appear here:\n,  : =", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:27:06"}
{"_id": "Zm4wtdPyCNrp27eyr", "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 , s : u.profile | s.source = u or s.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": "rXwaepdKrHK4kePNd", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:15:08"}
{"_id": "pJtKj9z48jNyhC7yJ", "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\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  always (all u : User | all  disj v1 v2 : u.visible | not v1.id = v2.id)\n\n}", "derivationOf": "WGdhwKZnCu7aKhXq9", "msg": "There are 1 possible tokens that can appear here:\n[", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:26:21"}
{"_id": "b5tGwWoiX2ZzEytBY", "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\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  \n   all u:User | all  w :u.profile | lone  (w.^(ids.~ids) & u.visible )   \n\n}", "derivationOf": "RXyJSyKnDLHQwujcq", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 12:21:53"}
{"_id": "jYJTztReJTSaPZr5Y", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User, disj v1, v2 : u.visible | (no (v1.ids & v2.ids)) | all v : (u.profile - v1 - v2) | (no (v1.ids & v.ids)) and (no (v2.ids & v.ids)))\n}", "derivationOf": "s22Wv7kzyphZts7aZ", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:12:58"}
{"_id": "F2cd6zn4CrXXLd2KW", "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\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\tall u : User | all w1 : u.visible | all w2 : (u.visible - w1) {\n    \tw1 not in w2\n    }\n}", "derivationOf": "YaaEvvZNkT7MnA4uD", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:47:44"}
{"_id": "cjS7rgqDv5N4z655G", "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\nvisible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\nall 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": "7iy8yLybciowhRd46", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-12-21 11:17:16"}
{"_id": "En8e54noB37MDAHYo", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (no (v1.ids & v2.ids)) and (all v : (u.profile - v1 - v2) | (no (v1.ids + v2.ids) & v.ids)))", "derivationOf": "pZPpABypxaqLBZNAu", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:33:07"}
{"_id": "5YCp5EYvFSqApvPPr", "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 | all w1,w2 : Work | (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}", "derivationOf": "RWtGkwkDbh2w96sPm", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-26 18:34:02"}
{"_id": "Gayud4PDszaEndMJB", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \t\n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User, v1,v2 : u.visible | no (v1.ids & v2.ids) and v1.source != v2.source\n}", "derivationOf": "gacATtzubAJn6mdv4", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:44:50"}
{"_id": "RXyJSyKnDLHQwujcq", "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\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  \n   all u:User | all  w :u.profile | lone  ((w.^(ids.~ids) & u.profile) & u.visible )   \n\n}", "derivationOf": "jFFvncSMTCucsGdwd", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 12:21:40"}
{"_id": "ft6mSZtHT6uQ2ZDTm", "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 : User.profile | 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\t\t\n}", "derivationOf": "w2bDYx8vjxE6fLwyZ", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 18:21:03"}
{"_id": "a8TnKzBSraqnWZWSh", "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\nvisible in profile\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.source -> u or w.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": "pnyRMP7KAwbDoqrss", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/Source->this/User}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-12-17 10:48:01"}
{"_id": "Q8MwHWautKyhFryHJ", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \t\n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User, v1,v2 : u.visible | v1.source = v2.source implies no (v1.ids & v2.ids)\n}", "derivationOf": "4FkRpJ8pfPoiCGfdq", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:46:39"}
{"_id": "3G9vWzoGdnh3CiBDz", "code": "/* \n    Consider the following model of an online CV platform that allows a\n    profile to be updated not only by its owner but also by external institutions,\n    to certify that the user indeed has produced certain works. \n    Works must have some unique global identifiers, that are used to\n    clarify if two works are in fact the same.\n*/\n\nabstract sig Source {}\nsig User extends Source {\n    profile : set Work,\n    visible : set Work\n}\nsig Institution extends Source {}\n\nsig Id {}\nsig Work {\n    ids : some Id,\n    source : one Source\n}\n\n// Specify the following invariants!\n// You can check their correctness with the different commands and\n// specifying a given invariant you can assume the others to be true.\n\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\nvisible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\nall 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\nall u: User, s: Source | all disj  w1,w2 : u.profile & source.s | 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": "s89u9hXWmQ44L5ppu", "original": "WGdhwKZnCu7aKhXq9", "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": {}, "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-12-21 11:54:14"}
{"_id": "3ycq5XwBZpuZfnChn", "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\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  all u:User | all  w :u.profile |lone (ids.(w.ids) & u.visible)  \n}", "derivationOf": "7ctEJhbxgHTagkyWL", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 12:01:06"}
{"_id": "Ar4EzMv4dfAocxhPh", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \t\n\tall u: User, w1, w2 : u.visible | (w1->w2) & ^((u.profile<:ids).~(u.profile<:ids))) in iden \n}", "derivationOf": "F9Sx6aPMKxvpHGFG3", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-23 13:56:38"}
{"_id": "Yv2SZAbmvkDfew8Td", "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\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\tall u : User | all disj w1, w2 : (u.visible) | w1.id != w2.id\n}", "derivationOf": "WGdhwKZnCu7aKhXq9", "msg": "The name \"id\" cannot be found.", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:33:00"}
{"_id": "osM95CAjBq3yxxwRS", "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, v : u.visible | v 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, p:u.profile | p.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": "JcCGgwaARWfWBY4AY", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-8 01:50:30"}
{"_id": "oQzHH8Z5JYMWEZRbg", "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\tvisible in 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 Institution+u\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u:User, s:Source | all disj w1,w2:(u.profile & source.s) | 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\tall u:User | all disj w1,w2 : u.(visible) | no (w1.ids & w2.ids) \n}", "derivationOf": "3BWHNis9kKrXsCzwb", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:31:36"}
{"_id": "xLPEvrCxyhPvrTXTL", "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  visible = (visible & profile)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | (u.profile).source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  all w1, w2 : Work, u : User {\n    (w1 != w2 and ((w1 + w2) in u.profile) and w1.source = w2.source) implies no (w1.ids & w2.ids)\n  }\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \n}", "derivationOf": "PeEwhqKQHjNeRukNi", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 18:16:58"}
{"_id": "eneCNZJEhRRPApsja", "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\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  always (all u : User | all disj v1, v2 : u.visible | no (v1.ids & v2.ids))\n\n}", "derivationOf": "LQ8BnEKmiWSj9Zp8j", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:30:32"}
{"_id": "R3nMWarNsMJH4va8n", "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 | (all w1,w2 :u.profile |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}", "derivationOf": "DBtcKqpffQZ7iDa9C", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-26 18:29:35"}
{"_id": "3BWHNis9kKrXsCzwb", "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\tvisible in 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 Institution+u\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u:User, s:Source | all disj w1,w2:(u.profile & source.s) | 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\tall u:User | all disj w1,w2 : u.(visible + profile) | no (w1.ids & w2.ids) \n}", "derivationOf": "RYuQng6ThpqyNjoR8", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:31:28"}
{"_id": "8CTiYGxedGbb7yH85", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \t\n\tall u: User, disj w1, w2 : u.visible | no w1->w2 & ^((u.profile<:ids).~(u.profile<:ids))\n}", "derivationOf": "cqCymmtRQsX3zT2B8", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-11-23 14:04:30"}
{"_id": "bGefksKBgeS4Ddzvo", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \t\n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User, disj v1,v2 : u.visible | no (v1.ids & v2.ids) \n}", "derivationOf": "hXs8bwckhv8uPCjDK", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:37:36"}
{"_id": "EJRn4GvJyYPk7b6SH", "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 | u.profile.source in u + Institution\n}\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall w: Work, u: User | lone w.ids in (u.profile.source & w.source)\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "cmBgovkW58SMpdNQL", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:09:14"}
{"_id": "bkGWYheH7EYCzRgvg", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \t\n\tall u: User | (u.visible->u.visible) & *((u.profile<:ids).~(u.profile<:ids)) in iden\n}", "derivationOf": "iymMqre5JtJunhJNe", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-11-23 13:19:19"}
{"_id": "ER4DYe27yDT3WB5at", "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| some i:Institution | no u.profile.source = u&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": "Qtk5jB6csx7gpbTrt", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {none}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-26 16:51:20"}
{"_id": "bghYKaPDb8Qas4aw5", "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\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  always (all u : User, disj v1 v2 : u.visible | not (v1.ids & v2.ids))\n\n}", "derivationOf": "6ZTeQj9vsfCybrwHK", "msg": "There are 3 possible tokens that can appear here:\n,  : =", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:28:26"}
{"_id": "P5A9TvT2CEY7qbREm", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : u.profile | some (v1.ids & v2.ids) implies ((v1 + v2) not in u.visible))\n}", "derivationOf": "qNPcJ6aAQGSEcmymJ", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:45:24"}
{"_id": "w3LLmo8KSdQk7FWw4", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \t\n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User,disj v1,v2 : u.visible |  no (v1.ids & v2.ids)\n}", "derivationOf": "Chzrr8RQHCFDJoPgb", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:47:55"}
{"_id": "MBMQyMNLGPwmn2fNd", "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 u:User| lone u.profile.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\t\t\n}", "derivationOf": "tZ3f4hRENJQkR3yxi", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 18:19:11"}
{"_id": "6TNxmjitqNvyFwoMD", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User, v1,v2 : u.visible |  v1.source = v2.source implies v1.ids not in v2.ids\n}", "derivationOf": "dNrp2APxdeS2yMjqF", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 21:01:02"}
{"_id": "LQ8BnEKmiWSj9Zp8j", "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\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  always (all u : User | all disj v1, v2 : u.visible | implies no (v1.ids & v2.ids))\n\n}", "derivationOf": "KuHJ4Frjmc4G7PGFx", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:30:24"}
{"_id": "gu8zccRTjDSGGHKrA", "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\nvisible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\nall w : Work | w.source = u or w.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": "AxAfwpxWBEiZTsQMP", "msg": "The name \"u\" cannot be found.", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-12-17 11:30:43"}
{"_id": "PKvGuWubp54brHK6W", "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  visible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | u.profile.source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s: Source, u: User| ((source.s & u.profile)<:ids).~((source.s & u.profile)<:ids) in iden\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n    \n \tall u : User | ^(((u.profile&u.visible)<:ids).~((u.profile&u.visible)<:ids)) in iden   \n}", "derivationOf": "d64poXGgpvqcBzJis", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-11 23:21:39"}
{"_id": "Bzhi3cQnkqMCnQapF", "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\tvisible in 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 s: Source | all id1, id2: (source.s).ids | id1 != id2\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "kghxDwk5JgpZokcn8", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-12 21:19:11"}
{"_id": "qnvkm5dDq783pNyvG", "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\tvisible in 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 Institution+u\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u:User, s:Source | all disj w1,w2:(u.profile & source.s) | 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\tall u:User | all disj w1,w2 : u.profile | no (w1.ids & w2.ids) \n}", "derivationOf": "oQzHH8Z5JYMWEZRbg", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:33:20"}
{"_id": "RYuQng6ThpqyNjoR8", "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\tvisible in 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 Institution+u\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u:User, s:Source | all disj w1,w2:(u.profile & source.s) | 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\tall u:User | all disj w1,w2 : u.visible | no (w1.ids & w2.ids) \n}", "derivationOf": "wMQWqaPKWFd2vBo8r", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:30:37"}
{"_id": "p8y7tCXSPmQtorjzQ", "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\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\tall u:User, x, y:Work | (x in u.visible and y in u.visible) implies not (x.id = y.id)\n}", "derivationOf": "WGdhwKZnCu7aKhXq9", "msg": "The name \"id\" cannot be found.", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:27:38"}
{"_id": "Gy39ANLAG7rX4qGfa", "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 | u.profile.source in (u + Institution)\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": "kB4hoAPKaRipDLWPw", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:02:37"}
{"_id": "D9yEvqPTzdruDW8Cc", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User, disj v1, v2 : u.visible, v : u.profile | (no (v1.ids & v2.ids)) and (v1.ids + v2.ids not in v.ids))\n}", "derivationOf": "pA7iBT6ddqGG4gZ7g", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:57:37"}
{"_id": "E9e3aNtWDSNG6Xdz2", "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\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  \n   all u:User | all  w :u.profile |  lone ((w.^(ids.~ids) & u.visible).ids :> (w.^(ids.~ids) & u.visible).ids ) & iden \n\n}", "derivationOf": "46e5Zs8WnEXEQG8i5", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/Id}\nRight type = {univ->univ}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-24 12:30:55"}
{"_id": "LCjXy7C3EwPYGMooN", "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 (w.source = u or w.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": "Segj9dR5dC3ZdZhok", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-9 18:22:54"}
{"_id": "4hKQmptX3Zv83ger3", "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\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  \n   all u:User | all  w :u.profile | lone  (w.^(ids.~ids) & u.visible)\n\n}", "derivationOf": "QwriCyuyEpSej7Ef9", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 12:27:41"}
{"_id": "RWvQ5bXznHPMYwNwK", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (no (v1.ids & v2.ids)) and all v : (u.profile - v1 - v2) | (no v1.ids & v.ids) and (no v2.ids & v.ids))\n}", "derivationOf": "KTW6jEbYDm9Kv4hZn", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:41:41"}
{"_id": "SCdiLvmtiEYzGTNSt", "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, v : u.visible | v 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, p:u.profile | p.source in 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": "osM95CAjBq3yxxwRS", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-8 01:51:05"}
{"_id": "dcJL4LFMmipB53emu", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \tall u : User, w : u.visible | no ((u.visible + u.profile) - w).ids & w.ids\n}", "derivationOf": "oMSxwpMxQzdtKsp3J", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-23 13:10:48"}
{"_id": "mWDrcQ49NCeSoPuNm", "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\tvisible in 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 Institution+u\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u:User, s:Source | all disj w1,w2:(u.profile & source.s) | 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\tall u:User | all disj w1,w2 : u.profile | w1.ids != w2.ids\n}", "derivationOf": "qnvkm5dDq783pNyvG", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 21:04:21"}
{"_id": "Erth83HWR2xDRM2Pb", "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, i : Institution, w : u.profile | always( w.source =u or w.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": "TaBzrQ5oabTpeo7yH", "msg": "This variable is unused.", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-9 18:28:09"}
{"_id": "yDJJBvokXkC7pMXZx", "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 | w1,w2 : u.profile | 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\t\t\n}", "derivationOf": "ft6mSZtHT6uQ2ZDTm", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-26 18:24:12"}
{"_id": "THgd4gfsw54bBKKR9", "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\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  always (all u : User | all disj v1, v2 : (u.profile & u.visible) | no (v1.ids & v2.ids))\n\n}", "derivationOf": "Ekrxi95q7HgsyKCdd", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:33:08"}
{"_id": "EQ755JLrwmx94ybn8", "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  visible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n    \n  User.profile.sorce in iden:>(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": "Rjt7QP7BYmNdyRKsR", "msg": "The name \"sorce\" cannot be found.", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-11 23:45:07"}
{"_id": "zrrB8fuims863ihmg", "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\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  \n   all u:User | all  w :u.profile | lone (w.^(ids.~ids) & u.visible ) \n\n}", "derivationOf": "upvcWnQpFugRmfDh7", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 12:18:55"}
{"_id": "AxAfwpxWBEiZTsQMP", "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\nvisible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\nall u : User | 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": "pP266RpwveCsZzifj", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-12-17 11:15:34"}
{"_id": "T56uAyWtGEDjXvSr3", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \t\n\tall u: User, w1, w2 : u.visible | (w1->w2) & ^((u.profile<:ids).~(u.profile<:ids)) in iden\n}", "derivationOf": "H8dSSbLtgyzY95ETN", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-11-23 13:58:07"}
{"_id": "EgFCWGDXArEKhtrgJ", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \t\n\tall u: User | ((u.visible->u.visible) & ^((u.profile<:ids).~(u.profile<:ids))) in iden\n}", "derivationOf": "gpoBvBKhNyX8cNWqQ", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-11-23 13:37:55"}
{"_id": "x5ww895fy7TGseELA", "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\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\tall u: User | u.visible<:^((u.profile<:ids).~(u.profile<:ids)).~(u.visible<:^((u.profile<:ids).~(u.profile<:ids))) in iden\n}", "derivationOf": "WGdhwKZnCu7aKhXq9", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 23:57:35"}
{"_id": "BhkzvuH6NKJtcHW2t", "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\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\t\tall w1,w2 : User.profile | visible.w1 = visible.w2 implies w1=w2\n}", "derivationOf": "w9Pni26pDKcTHJHrJ", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 18:16:21"}
{"_id": "cL8EusGq4rPGN5khw", "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\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "Zu5LzCxQGrL2kQLcD", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-11-26 17:40:24"}
{"_id": "tgbHZ52KAvYTqHcFn", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (no (v1.ids & v2.ids)) and all v : (u.profile - v1 - v2) | no (v1.ids + v2.ids) & v.ids)", "derivationOf": "49JEzWJ7QxFY4DPAx", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:34:29"}
{"_id": "xwpTsiqSfedoyZrDz", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \t\n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User, v1,v2 : u.visible | no (v1.ids & v2.ids) \n}", "derivationOf": "bGefksKBgeS4Ddzvo", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:38:09"}
{"_id": "mcs5w7zEzjXgbJcvN", "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\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  always (all u : User | all disj v1, v2 : (u.profile & u.visible) | no (v1.ids & v2.ids))\n\n}", "derivationOf": "eneCNZJEhRRPApsja", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:31:25"}
{"_id": "XvSrvwRqoiM4AsAMR", "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 \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\tall u : User | all disj w1, w2 : u.visible {\n    \tno id : w1.ids | id in w2.ids\n    \tno id : w2.ids | id in w1.ids\n    }\n}", "derivationOf": "4TPMcQSQcQ253uhmN", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:14:34"}
{"_id": "CkyLvW3tuhSvb9FEM", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : u.visible | all v : (u.profile - v1 - v2) | (no (v1.ids & v2.ids)) and (no (v1.ids & v.ids)) and (no (v2.ids & v.ids)))\n}", "derivationOf": "fiqDei2NJ3SmkGriC", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:02:40"}
{"_id": "Y2vuTpWEznkBiWoXY", "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 (w.source = u or 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": "LCjXy7C3EwPYGMooN", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-9 18:23:46"}
{"_id": "aS5i4pzw3PfLvJpat", "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  visible = (visible & profile)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | (u.profile).source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  all u : User, disj w1, w2 : u.profile {\n    (w1.source = w2.source) implies no (w1.ids & w2.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, id : u.visible.ids | one (id.~ids)\n}", "derivationOf": "JYQSzWN5QvpH7LGiK", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 18:29:03"}
{"_id": "fmRs9Dq4XMCx5wqKR", "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\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\tall u:User, x, y:Work | (x in u.visible and y in u.visible and x.source = y.source) implies no (x.ids & y.ids)\n}", "derivationOf": "yenrPDq52r6Xx7fj4", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:41:28"}
{"_id": "rcCSt8SwM3SwDL24n", "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\nvisible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\nWork.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": "dGRkaRwXZT6TKsAMy", "msg": "The name \"u\" cannot be found.", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-12-17 11:14:16"}
{"_id": "F9Sx6aPMKxvpHGFG3", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \t\n\tall u: User, w1, w2 : u.visible | (w1->w2) & ^((u.profile<:ids).~(u.profile<:ids))) in iden\n}", "derivationOf": "EgFCWGDXArEKhtrgJ", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-23 13:56:33"}
{"_id": "mDTRSf4znopRBnDrg", "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  visible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | u.profile.source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s: Source, u: User| ((source.s & u.profile)<:ids).~((source.s & u.profile)<:ids) in iden\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n    \n \tall u : User | ^((u.profile<:ids).~(u.profile<:ids)) in iden   \n}", "derivationOf": "xdenbmArEhgTzs2nT", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-11 23:18:15"}
{"_id": "xR2hxYRXAsRiwjhAT", "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 or (u.profile.source in Institution)\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": "CBnPFyXcSpCnrkQb3", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:03:22"}
{"_id": "zCMRRvb4ayhnJMz4y", "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\nvisible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\nall w : Work | w.source = User or w.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": "gu8zccRTjDSGGHKrA", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-12-17 11:30:55"}
{"_id": "Tfof9b9XwADcwtrfQ", "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\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  all u:User | all disj  w1, w2 :u.profile | w1+w2 in u.visible  implies no (w1.ids & w2.ids) \n}", "derivationOf": "BwQ4NtcipnohSfDDT", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 11:35:47"}
{"_id": "wNw5DfXueZX9Nk3pr", "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\tvisible in 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 Institution+u\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 disj w1,w2 : u.profile | no (w1.ids & w2.ids)\n}", "derivationOf": "zpuy27ZeEjibswQt5", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:17:19"}
{"_id": "PKXZNcG7hmrjQBGth", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User, disj v1, v2 : u.visible | (no (v1.ids & v2.ids)) and (all v : (Work - v1 - v2) | (no (v1.ids & v.ids)) and (no (v2.ids & v.ids))))\n}", "derivationOf": "gdzbFs8Arp2GNoPAF", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:17:29"}
{"_id": "cmBgovkW58SMpdNQL", "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\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": "eyBzSfmHkPNvPSafr", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 22:03:59"}
{"_id": "8j8uYwvAo9c3e2qsY", "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 : Source.profile | w1.ids = w2.ids implies w1=w2\n  }\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \n}", "derivationOf": "ptyCZduGqkNe7sEJN", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 19:34:49"}
{"_id": "wQHGnAWZP7NCbH3ZZ", "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\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall s: Source, u: User | all disj w1, w2: (u.profile & source.s) | no w1.ids & w2.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\nalways (all u : User | all disj v1, v2 : (u.profile & u.visible) | no (v1.ids & v2.ids))\n\n}", "derivationOf": "dEe5aW7qxo2uWpp2y", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:32:21"}
{"_id": "ZvRNuu5nTgokKrYGB", "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  visible = (visible & profile)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | (u.profile).source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  all w1, w2 : Work, u : User {\n    (w1 != w2 and ((w1 + w2) in u.profile) and w1.source = w2.source) implies no (w1.ids & w2.ids)\n  }\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \n}", "derivationOf": "xLPEvrCxyhPvrTXTL", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 18:16:59"}
{"_id": "9E4CEbnthL2Q9vcd5", "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| no u.profile.source = 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": "itZwxM5bQccnRE7YX", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {none}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-26 16:51:48"}
{"_id": "a6erQRBttyxTepeeB", "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  visible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n    \n  profile.source in iden + 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": "NAgamoiGBm6iMXzmF", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-11 23:47:47"}
{"_id": "JcCGgwaARWfWBY4AY", "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, v : u.visible | v 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": "WGdhwKZnCu7aKhXq9", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-8 01:48:00"}
{"_id": "vcJ5oNaFeuKxboPvm", "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\tsome w : User.profile | all id1,id2 : Id | id1 in w.ids implies id2 not in w.ids\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "siDnkjxvNxXNymWdE", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 17:45:50"}
{"_id": "oRxo3QnNNbyq7XtuM", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User, disj v1, v2 : u.visible | all v : (u.profile - v1 - v2) | (no v1.ids & v2.ids) and (v1.ids + v2.ids in v.ids))\n}", "derivationOf": "QkSstKCniPDHYrobH", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:54:39"}
{"_id": "DBtcKqpffQZ7iDa9C", "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 and some w1,w2:u.profile | no User\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\t\t\n}", "derivationOf": "yDJJBvokXkC7pMXZx", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-26 18:24:53"}
{"_id": "cHSHvZhgwJwtEdK7z", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \t\n\tall u1 : User , disj w1,w2 :u1.profile | 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": "EC6JKTFi8obQpJGkc", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 20:30:28"}
{"_id": "gpoBvBKhNyX8cNWqQ", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \t\n\tall u: User | (u.visible->u.visible) & ^((u.profile<:ids).~(u.profile<:ids)) in iden\n}", "derivationOf": "bkGWYheH7EYCzRgvg", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-11-23 13:19:23"}
{"_id": "iKzY9jPFtQBpsugzu", "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 = 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": "dvh4iwu68bEKAZq3E", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 16:50:20"}
{"_id": "YJhRb5qQPJojk32de", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : u.profile | (v1 + v2) not in u.visible)\n}", "derivationOf": "Ame5hxtykTt63NHfW", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:44:07"}
{"_id": "FqC2zdf8MaZMgogDC", "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 |all w:Work | w in u.profile implies (w.source in 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 w1,w2:Source.profile | 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\tall u:User | all w1,w2 : u.profile | (w1 in u.visible and w2 in u.visible) implies w1=w2\n}", "derivationOf": "HZviJzYvuMWL3uA5P", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-14 00:33:19"}
{"_id": "c56JB5DEeYuWwZhK8", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (no (v1.ids & v2.ids)) and (all v : (Work - v1 - v2) | (no (v1.ids & v.ids)) and (no (v2.ids & v.ids))))\n}", "derivationOf": "2FH4g26odFFWfg4YD", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:27:05"}
{"_id": "QEypNqZryKnmBaYcP", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \t\n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User, v1,v2 : u.visible | no (v1.ids & v2.ids) and v1.source != v2.source) \n}", "derivationOf": "pm3G3ySLWPfsFzWvk", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 20:43:25"}
{"_id": "NP7aQqr9qRBExP5YD", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u1 : User , w1,w2 :u1.profile | one (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": "S9LwYs3MCBxKWgohJ", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:25:53"}
{"_id": "vJjcBe3E6zAq42eTf", "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\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\talways (all u : User | all disj v1, v2 : (u.profile & u.visible) | no (v1.ids & v2.ids))\n}", "derivationOf": "F3f9ZFzeRgJiX9aNf", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:37:16"}
{"_id": "jhCgnWD2hgooSrs7C", "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\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\tall u : User | all disj w1, w2 : (u.visible) {\n      \tall id : w1.ids | id not in w2.ids\n      \tall id : w2.ids | id not in w1.ids\n    }\n}", "derivationOf": "RYh76MjdXAQmG2A8y", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:38:27"}
{"_id": "TMfd3K3KkPepYaTdP", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \t\n\tall u: User | (u.visible->u.visible) & ^((u.profile<:ids).~(u.profile<:ids))) in iden\n}", "derivationOf": "6YpRDJA3xEXDL8gJ2", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-23 13:57:50"}
{"_id": "stETGM5rzqrgZgnAm", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : u.visible | all v : (u.profile - v1 - v2) | (no v1.ids & v2.ids) and (no v1.ids & v.ids) and no v2.ids & v.ids)\n}", "derivationOf": "EL2sEYBeWskbEEF9E", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:01:07"}
{"_id": "3fmxitANynErRnKGL", "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\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\tall u : User | all disj w1, w2 : (u.visible) | all id : w1.ids | id not in w2.ids\n}", "derivationOf": "RaF8dECEWu9oEoPA6", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:36:26"}
{"_id": "Yx9N8JxBAEn9HFuvi", "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": "WGdhwKZnCu7aKhXq9", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-12 21:10:41"}
{"_id": "EwdFarWYYptffagYb", "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  visible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n    \n  User.profile.source in iden:>(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": "EQ755JLrwmx94ybn8", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/Source}\nRight type = {univ->this/Source}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-11 23:45:11"}
{"_id": "zmF3nTLJEM34eB2E8", "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  visible = (visible & profile)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | (u.profile).source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  all u : User, disj w1, w2 : u.profile {\n    (w1.source = w2.source) implies no (w1.ids & w2.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, id : u.visible.ids | one (id.~ids & u.visible)\n}", "derivationOf": "aS5i4pzw3PfLvJpat", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 18:30:38"}
{"_id": "7q7dJm8oYzNuhmToo", "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\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\talways (all u : User | all disj v1, v2 : u.visible | no (v1.ids & v2.ids))\n}", "derivationOf": "vJjcBe3E6zAq42eTf", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:37:55"}
{"_id": "fQcMaaSj5GzAcHfbf", "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\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall s: Source, u: User | all disj w1, w2: (u.profile & source.s) | no w1.ids & w2.ids\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\nall u: User | u.visible<:^((u.profile<:ids).~(u.profile<:ids)):>u.visible in iden\n}", "derivationOf": "WGA4CSN5fdGWnyqjF", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-14 12:52:57"}
{"_id": "75QSpd8je2avvfSbj", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : u.visible | no (v1.ids & v2.ids))\n}", "derivationOf": "8t2cK9YGbYYWkmjSH", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 22:41:25"}
{"_id": "aoy3amK6shK4LLk82", "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\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  always all u : User | all disj v1 v2 : u.visible | not v1.ids & v2.ids\n\n}", "derivationOf": "KFuwLCkgxJJoLZFcS", "msg": "There are 1 possible tokens that can appear here:\n[", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:27:22"}
{"_id": "saRfhDzRS8BtF5YJ6", "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  visible = (visible & profile)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | (u.profile).source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  all u : User, disj w1, w2 : u.profile {\n    (w1.source = w2.source) implies no (w1.ids & w2.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, id : u.visible.ids | one (id.~ids & u.profile)\n}", "derivationOf": "zmF3nTLJEM34eB2E8", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 18:31:03"}
{"_id": "gxpFrjZ6AXj8iwFmS", "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 | no ((u.profile.source) - Institution - u)\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 w:Work | (w in User.profile and w in User.visible) implies (one w in User.visible)\n\n}", "derivationOf": "asLCTCkDwjDqYc9QF", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:37:18"}
{"_id": "49JEzWJ7QxFY4DPAx", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (no (v1.ids & v2.ids)) and all v : (u.profile - v1 - v2) | (no (v1.ids + v2.ids) & v.ids))", "derivationOf": "aTKAWuJcPFmFWcqmF", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:34:09"}
{"_id": "AXb6yYRciSJxF3Ecj", "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\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  all u:User | all  w :u.profile |one (ids.(w.ids) & u.visible)  \n}", "derivationOf": "v8oqbJudhGaLwJxr4", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 11:58:28"}
{"_id": "toiA4oJoSPPzXgRxM", "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 | no ((u.profile.source) - Institution - u)\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 w:Work | ((w in User.profile) & (w in User.visible)) implies ( w in User.visible)\n\n}", "derivationOf": "Xb5ZntpJiyP7qdzsY", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:37:54"}
{"_id": "AWXhTbmMLaCgYTAfj", "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\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall s: Source, u: User | all disj w1, w2: (u.profile & source.s) | no w1.ids\n\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "Tp8nvb39zhbqEYTFa", "msg": "This variable is unused.", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-14 12:52:26"}
{"_id": "FD7bYBh5iKXPPpYkv", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (no (v1.ids & v2.ids)) and (all v : (u.profile - v1 - v2) | (no ((v1.ids + v2.ids) & v.ids))", "derivationOf": "gCMjA8uZhwXipFo3A", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:32:19"}
{"_id": "2FH4g26odFFWfg4YD", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visibile & u.profile) | (no (v1.ids & v2.ids)) and (all v : (Work - v1 - v2) | (no (v1.ids & v.ids)) and (no (v2.ids & v.ids))))\n}", "derivationOf": "Bw5DLo2pnci2KZ4gF", "msg": "The name \"visibile\" cannot be found.", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:26:59"}
{"_id": "s89u9hXWmQ44L5ppu", "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\nvisible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\nall 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\nall u: User, s: Source | all disj  w1,w2 : u.profile & source.s | 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": "cjS7rgqDv5N4z655G", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-12-21 11:23:50"}
{"_id": "sJ3J7LovMtRLfoySR", "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\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  all u:User | all  w :u.profile |lone (ids.^(w.ids) & u.visible)  \n}", "derivationOf": "9wSNXytY9iRPb9T63", "msg": "^ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/Id}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-24 11:56:48"}
{"_id": "g8PrKYqvNpED3FaWw", "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\tvisible in 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 s: Source | all id1, id2: ((source.s) & User.profile).ids | id1 != id2\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "Bzhi3cQnkqMCnQapF", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-12 21:22:37"}
{"_id": "vqMypXh6bNSS52Fek", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User, v1,v2 : u.visible |  v1.source = v2.source implies v1.ids not in v2.ids\n}", "derivationOf": "MHw5nzdewQYJdMMrb", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 21:00:04"}
{"_id": "FwRemKGKSRjFC57op", "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\tvisible in 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 s: Source | all disj id1, id2: ((source.s) & User.profile).ids | id1 != id2\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "urF8f7QFDGDxry5p8", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-12 21:40:17"}
{"_id": "ZsvuDzEBaGabqjKWh", "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  visible 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": "P5AAyb396BNmK6bwM", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-11 23:03:18"}
{"_id": "6ZTeQj9vsfCybrwHK", "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\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  always all u : User, disj v1 v2 : u.visible | not (v1.ids & v2.ids)\n\n}", "derivationOf": "wuSws8EJD3krFohoX", "msg": "There are 3 possible tokens that can appear here:\n,  : =", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:28:12"}
{"_id": "bkhBm9TWQhFhkvL8G", "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 | w in User.visible implies w 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": "sitAbxKpYmNF4ZhmW", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-9 18:18:06"}
{"_id": "7ctEJhbxgHTagkyWL", "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\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  all u:User | all  w :u.profile |lone (ids.(w.ids)) & u.visible)  \n}", "derivationOf": "p65WKPKmjQ38iavQs", "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": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-24 12:01:02"}
{"_id": "Tp8nvb39zhbqEYTFa", "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\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall s: Source, u: User | all disj w1, w2: (u.profile & source.s) | no w1.ids & w2.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\nall u: User | u.visible<:^((u.profile<:ids).~(u.profile<:ids)):>u.visible in iden\n\n}", "derivationOf": "ondqEGP4iaGCSkAbP", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-14 12:51:44"}
{"_id": "CJ6dWq2fFZKftneLf", "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 | visible.w implies some 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": "rHJYxWMo5Z9y2p4zR", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/User}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-12-1 22:55:47"}
{"_id": "Sm4kKZzXq97CaQF67", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \tall u : User, disj w1, w2 : u.visible | w1 + w2 in u.profile => no w1.ids & w2.ids\n}", "derivationOf": "vnRiFCLHTXwn9jEiZ", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-23 12:50:58"}
{"_id": "s5g7xbB9Zy7AJAdKi", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User, disj v1, v2 : u.visible | (no (v1.ids & v2.ids)) and all v : (u.profile - v1 - v2) | (no (v1.ids & v.ids)) and (no (v2.ids & v.ids))\n}", "derivationOf": "tqAteka6hsGNTGujY", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:13:23"}
{"_id": "dGRkaRwXZT6TKsAMy", "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\nvisible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\nwork.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": "6M5uWiAsYNPYxaMuh", "msg": "The name \"work\" cannot be found.", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-12-17 11:14:04"}
{"_id": "ow2GXbL53jBk3cwtR", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : u.visible | all v : (u.profile - v1 - v2)) | (no v1.ids & v2.ids) and (v1.ids + v2.ids in v.ids))\n}", "derivationOf": "HCEWdQBvg2iiZZidR", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:54:01"}
{"_id": "gCMjA8uZhwXipFo3A", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (no (v1.ids & v2.ids)) and (all v : (u.profile - v1 - v2) | (no (v1.ids & v.ids)) and (no (v2.ids & v.ids))))\n}", "derivationOf": "c56JB5DEeYuWwZhK8", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:31:16"}
{"_id": "hqLFRvLCdJTksCH2d", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \t\n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User, v1,v2 : u.visible | no (v1.ids & v2.ids) \n}", "derivationOf": "LSwzDd9hdCMgBr4Ts", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:40:35"}
{"_id": "GpnCt3zp5bjiyg3BX", "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 | no ((u.profile.source) - Institution - u)\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 w:Work | ((w in User.profile) and (w in User.visible)) implies ( w in User.visible)\n\n}", "derivationOf": "gPzqymCB4TzAZAuEJ", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:38:32"}
{"_id": "xu5LdChW5vvtQ2vKu", "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\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  always (all u : User | all disj v1, v2 : u.visible | not (v1.ids & v2.ids))\n\n}", "derivationOf": "bghYKaPDb8Qas4aw5", "msg": "This expression failed to be typechecked line 42, column 56, filename=/tmp/alloy_heredoc2298808089797856399.als", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:28:37"}
{"_id": "7XArGFQX68y8vo5ur", "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\tvisible in 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 || some (w.source) & Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tlet R = User.profile <: ids | R.~R in iden\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "wuPT4xyMbahnXDWb9", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-12-4 18:04:35"}
{"_id": "PuF23k7NGTnQd5KLy", "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| some i:Institution | no u.profile.source in u + 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": "bT73ToJKc96iAugzy", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-26 16:51:03"}
{"_id": "aKSW6pGzLg8gzAJof", "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\tvisible in 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 s: Source, u: User | all disj w, w1: ((source.s) & u.profile) | 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": "LuQcDHFTekaQ6aYNd", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-12 21:45:28"}
{"_id": "FdNnTZdn5NdAa88vo", "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  visible = (visible & profile)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | (u.profile).source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  all u : User, disj w1, w2 : u.profile {\n    (w1.source = w2.source) implies no (w1.ids & w2.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, disj id1, id2 : u.visible.ids | no (id1.~ids & id2.~ids)\n}", "derivationOf": "kxdRtwLzfARCgcMvK", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 18:22:44"}
{"_id": "3XabBvEoWhoXWbWQ6", "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\tvisible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n\tUser.profile.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": "9M6zbBiazR8PqiQTW", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-12-4 17:55:53"}
{"_id": "ucquwtfpmLzLKnGKz", "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\nvisible 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": "WGdhwKZnCu7aKhXq9", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2020-12-20 23:16:34"}
{"_id": "pWhfCiKCArpRx3Ezm", "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\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  all u:User | all disj  w1, w2 :u.profile | some (w1.ids & w2.ids) implies lone((w1 + w2)& u.visible) \n}", "derivationOf": "f5xZMkN3c78uoyg3L", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 11:39:30"}
{"_id": "nnds48PCEaoBrXFgx", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User, disj v1, v2 : u.visible, v : (u.profile - v1 - v2) | (no (v1.ids & v2.ids)) and (no v1.ids & v.ids) and  no v2.ids & v.ids)\n}", "derivationOf": "bvmMt4bCQNZHNT8Ez", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:00:23"}
{"_id": "fXC6kwet6YGLQ7bir", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (no (v1.ids & v2.ids)) and all v : (u.profile - v1 - v2) | not (v1.ids = v.ids and v2.ids = v.ids)\n}", "derivationOf": "nGF9xjJYRk7BJ22pD", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:35:47"}
{"_id": "SothKusMS45g2B4H6", "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\tvisible in 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 s: Source, u: User | all id1, id2: ((source.s) & u.profile).ids | id1 != id2\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "g8PrKYqvNpED3FaWw", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-12 21:24:37"}
{"_id": "y5AYkTK2dd3fMGSzR", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \tall u : User, w : u.visible | no (u.profile - w).ids & w.ids\n}", "derivationOf": "yWZoExNQsvAjka8Qa", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-23 13:03:28"}
{"_id": "HZ8LBFSoKCR3N3frc", "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  }\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  all w1,w2:Work | w1 in visible.(u.profile) and w2 in visible.(u.profile) implies w1=w2\n}", "derivationOf": "bP3CwtY4N7JAuGYXb", "msg": "The name \"u\" cannot be found.", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-11-26 19:40:59"}
{"_id": "mFr6HtDeaS7vj6Yzv", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tall u1 : User , w1,w2 :u1.profile | some (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": "TbySvMaWLCqHJQHY2", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:23:57"}
{"_id": "g6quMA9pZ6hniju2h", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (no (v1.ids & v2.ids)) and (all v : (u.profile - v1 - v2) | (no (v1.ids + v2.ids) & v.ids)", "derivationOf": "En8e54noB37MDAHYo", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:33:25"}
{"_id": "DyBsgcfgfmpJYQBa8", "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 |all w:Work | w in u.profile implies (w.source in 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 disj w1,w2:Source.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": "TedxxZDsaPYWZkGB8", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-14 00:31:06"}
{"_id": "bvmMt4bCQNZHNT8Ez", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User, disj v1, v2 : u.visible, v : (u.profile - v1 - v2) | (no (v1.ids & v2.ids)) and v1.ids not in v.ids and v2.ids not in v.ids)\n}", "derivationOf": "tqr2hWjqSoFEW23fZ", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:59:32"}
{"_id": "wfzGeqcJXGEejeWbk", "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\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  \n   all u:User | all  w :u.profile | lone (w.^(ids.~ids) & u.visible)\n  \n  \n  \n}", "derivationOf": "E9e3aNtWDSNG6Xdz2", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 12:34:34"}
{"_id": "KTW6jEbYDm9Kv4hZn", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (no (v1.ids & v2.ids)) and all v : (u.profile - v1 - v2) | (no v1.ids & v.ids) and (no v2.ids & v.ids)\n}", "derivationOf": "8aogfjf7hXu56mCPX", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:41:35"}
{"_id": "M748dLa3aYMtRc8w6", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : u.visible | all v : (u.profile - (v1 + v2) | (no v1.ids & v2.ids) and (v1.ids + v2.ids in v.ids))\n}", "derivationOf": "HnqEW5cXywgn9eydr", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 22:53:37"}
{"_id": "xg8v5eAWNWbCDC65g", "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  visible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | u.profile.source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s: Source, u: User| ((source.s & u.profile)<:ids).~((source.s & u.profile)<:ids) in iden\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n    \n \tall u : User | u.visible<:^((u.profile<:ids).~(u.profile<:ids)):>u.visible in iden   \n}", "derivationOf": "PKvGuWubp54brHK6W", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-11 23:22:10"}
{"_id": "pZPpABypxaqLBZNAu", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (no (v1.ids & v2.ids)) and (all v : (u.profile - v1 - v2) | (no ((v1.ids + v2.ids) & v.ids)))", "derivationOf": "FD7bYBh5iKXPPpYkv", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 23:32:25"}
{"_id": "3uMhhsovPuiBmLMYR", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User, v1,v2 : u.visible |  v1 != v2 \n}", "derivationOf": "uRfN48AMNbH6n99SB", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 20:55:19"}
{"_id": "23QEg5E9DkcDzbLFt", "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\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\nall u:User | all w1 :u.profile |lone ( w1.^(ids.~ids) & u.visible)\n}", "derivationOf": "WGdhwKZnCu7aKhXq9", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-23 11:23:28"}
{"_id": "ZkdJRtkj3AwLMfi8u", "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\tvisible in 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 Institution+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": "imaMtvfNrRhDdz6WK", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 20:14:26"}
{"_id": "Bs8HbZTepKgDKAEKn", "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  visible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n    \n  profile.source in iden + User->Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  all s: Source, u: User| ((source.s & u.profile)<:ids).~((source.s & u.profile)<: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": "mjTLDXKRCJwhXkbE2", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-11 23:55:01"}
{"_id": "bP3CwtY4N7JAuGYXb", "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  }\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  all u:User | some visible.(u.profile)\n}", "derivationOf": "dGb3fpcxxymrRaTiF", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 19:39:54"}
{"_id": "DzeDTNekegFi63LYs", "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\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\tall u:User, x, y:Work | (x in u.visible and y in u.visible) implies not (x.ids = y.ids)\n}", "derivationOf": "hxnD3kPQTANreufxn", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:29:02"}
{"_id": "qFAZ2xmamcXgYico3", "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\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\tall u: User | u.visible<:^((u.profile<:ids).~(u.profile<:ids)):>u.visible in iden\n}", "derivationOf": "x5ww895fy7TGseELA", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 23:57:59"}
{"_id": "4jZyLJacNng3w9QHq", "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 | 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\t\n}", "derivationOf": "FB5HQ7uz49axQPyeS", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-9 18:39:52"}
{"_id": "mjTLDXKRCJwhXkbE2", "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  visible in profile\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n    \n  profile.source in iden + 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": "MEcoDWG8jm3ngmaT4", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-11 23:47:53"}
{"_id": "vsetuQt35x7BuTWWe", "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\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  always (all u : User | all disj vis : u.visible | no (vis.ids & (u.profile - vis)))\n\n}", "derivationOf": "THgd4gfsw54bBKKR9", "msg": "- is irrelevant since the right expression is redundant.\nParent's relevant type = {none}\nLeft type = {this/Work}\nRight type = {this/Work}", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 22:34:31"}
{"_id": "yenrPDq52r6Xx7fj4", "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\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\tall u:User, x, y:Work | (x in u.visible and y in u.visible) implies not (x = y)\n}", "derivationOf": "DzeDTNekegFi63LYs", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:32:49"}
{"_id": "wuPT4xyMbahnXDWb9", "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\tvisible in 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 || some (w.source) & Institution\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n\tlet R = User.profile | R.~R in iden\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "h8RrSHEzBdatwyqe4", "msg": "~ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/Work}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2020-12-4 18:03:59"}
{"_id": "LfdeLSbfLKvukBgZx", "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  visible = (visible & profile)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | (u.profile).source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  all u : User, disj w1, w2 : u.profile {\n    (w1.source = w2.source) implies no (w1.ids & w2.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, id : u.visible.ids | one (id.~(u.visible.ids))\n}", "derivationOf": "szkM8RXrDHxJXjoWh", "msg": "~ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/Id}", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 18:25:06"}
{"_id": "v8oqbJudhGaLwJxr4", "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\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  all u:User | all  w :u.profile |lone (ids.(w.ids) & u.visible)  \n}", "derivationOf": "rNoKyo8XiG6mezrAP", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-24 11:57:24"}
{"_id": "QQ5qbh7bijex7gZg4", "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 u:User | all id1,id2 : Id | id1 in u.profile.ids implies id2 not in u.profile.ids\t\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n\n}", "derivationOf": "vcJ5oNaFeuKxboPvm", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-26 17:46:20"}
{"_id": "pm3G3ySLWPfsFzWvk", "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 , s : u.profile | some (s.source & u) or some (s.source & Institution)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  \t\n\tall u1 : User , disj w1,w2 :u1.profile | 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\tall u :User, v1,v2 : u.visible | no (v1.ids & v2.ids) and no (v1.source = v2.source) \n}", "derivationOf": "hqLFRvLCdJTksCH2d", "msg": "This expression failed to be typechecked line 43, column 60, filename=/tmp/alloy_heredoc6860503124819000351.als", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 20:43:13"}
{"_id": "Qi7JtDLn3i8iQCjCt", "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\npred Inv1 { // The works publicly visible in a curriculum must be part of its profile\n    visible in 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 + u.visible).source in (u + Institution)\n\t\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n    all s : Source, disj a,b : source.s | some profile.a & profile.b => no a.ids & b.ids\n}\n\n\npred Inv4 { // The profile of a user cannot have two visible versions of the same work\n  \t\n    \n  \tall u : User, w : u.visible | no (u.visible - w).ids & w.ids\n}", "derivationOf": "y5AYkTK2dd3fMGSzR", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2020-11-23 13:04:15"}
{"_id": "o5gRnPRb2yS5G8tAw", "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  visible = (visible & profile)\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  all u : User | (u.profile).source in (Institution + u)\n}\n\n\npred Inv3 { // The works added to a profile by a given source cannot have common identifiers\n  all u : User, disj w1, w2 : u.profile {\n    (w1.source = w2.source) implies no (w1.ids & w2.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, id : u.visible.ids | one ((u.visible.ids).id)\n}", "derivationOf": "LfdeLSbfLKvukBgZx", "msg": "This cannot be a legal relational join where\nleft hand side is u . (this/User <: visible) . (this/Work <: ids) (type = {this/Id})\nright hand side is id (type = {this/Id})", "original": "WGdhwKZnCu7aKhXq9", "sat": -1, "time": "2021-1-13 18:25:27"}
{"_id": "L4LZiqZdK5AszNGyA", "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  always (all u : User, v : u.visible | v in u.profile)\n\n}\n\n\npred Inv2 { // A user profile can only have works added by himself or some external institution\n  always (all u : User, p : u.profile | p.source in u+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\talways (all u : User | all disj v1, v2 : (u.visible & u.profile) | (not (v1.ids = v2.ids)) and all v : (u.profile - v1 - v2) | (no v1.ids & v.ids) and (no v2.ids & v.ids))\n}", "derivationOf": "ZEp9HpcS2ySaYAPEm", "original": "WGdhwKZnCu7aKhXq9", "sat": 1, "time": "2021-1-13 23:42:29"}
{"_id": "r7Bg4QGBKhQAfN75i", "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 | no ((u.profile.source) - Institution - 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": "3KJMfKZE8f4EGP2vD", "original": "WGdhwKZnCu7aKhXq9", "sat": 0, "time": "2021-1-13 23:19:09"}