{"_id": "KsX6w7eGrHZMP6JiJ", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link . link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  Trash.link in Trash\n}", "derivationOf": "CE6XbhriQYMDWQRth", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:03:38"}
{"_id": "MdA7DgY3Js3f4RmnZ", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  File in Trash implies File.link in Trash\n\n}", "derivationOf": "vetjMPPpkhzGtAnr7", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-15 00:41:39"}
{"_id": "DSZutJoSnEqHYSmG7", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { File.link -> Trash implies File -> Trash\n}", "derivationOf": "6JY9mTDy2eJXxvu3w", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-14 08:29:53"}
{"_id": "qwWeBL4apA2KKTP58", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f = Trash\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZrZsw5Z9ihNFeCjJP", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 19:03:50"}
{"_id": "tJDjn6hz6ZD5urxBE", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash in (File - Protected)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZK5TW5BaszbxmyDMA", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 20:22:33"}
{"_id": "39RTeSvdr8nseqMRo", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6t97fdKkCkPbTYFuW", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:32:36"}
{"_id": "sSz4uq2zDvrA5SGYW", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f = Protected - Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3xjkhCQuwdFm4kKXE", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 22:53:57"}
{"_id": "QrAhHLvh4YcLpC8Xc", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \t\n  \tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tl in Trash => \n  \tall f : File, l : f.link | f in Trash => l in Trash\n}", "derivationOf": "9Sc5xguwavghPGr2T", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-28 09:36:12"}
{"_id": "SNqzzKjeeXPDQtmQt", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "boZECYMRmRb5NMrrx", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 18:40:09"}
{"_id": "KkWkieLkfpzXwCYXQ", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "92x4qAoCuJuyHjqdw", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:45:45"}
{"_id": "HsCCK2GpjPmGcXRmr", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7NpkJK6gSEtFijw7F", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 16:48:35"}
{"_id": "wCTPjjpp8p2jXZHmb", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "vvSu4bRjymFLtT3EF", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:26:41"}
{"_id": "aFrmbzpPsrFoGJxqt", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sEbGf7M2uWapspdMH", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 21:46:43"}
{"_id": "9vPciujDPHtnmkpKa", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | no f.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f.^link in Trash and f in Trash\n}", "derivationOf": "v3XH5wxxhn7qCKE5G", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:38:12"}
{"_id": "FMhR8Ax9hL4wcqARp", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-4-16 10:40:44"}
{"_id": "eqKX2DAGjsx8C68Qm", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-8-13 17:31:08"}
{"_id": "FMo7afuCL5vggNMFn", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rGq5RNJ6c78ob2TPn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 18:33:51"}
{"_id": "LNhmS32znvzBZiqpe", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tsome Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iEgD62JEukBEpJmpm", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-13 16:36:51"}
{"_id": "5pCRorNoqJSccf7Hd", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tFile & (Trash * univ)  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FtawZyNohHnFBJRYu", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:32:39"}
{"_id": "mW7N48NwX3MDqkz8D", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some f.link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "voE4ZLZMqPK87hNoe", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-13 16:46:48"}
{"_id": "sPNYpbPnq4FXKEz9k", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4boDH3YpnbtbLLXNo", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-11-14 01:13:07"}
{"_id": "92TKAn4SAeXghmJbh", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link & (link.link in Trash)\n}", "derivationOf": "z9D6n94hoQw39zgKQ", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:02:16"}
{"_id": "NMGZN9JRbELkEJBnD", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f->link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WBf866W9yKj8A7NhL", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-28 09:24:26"}
{"_id": "HSyLSBSPgPcvTS2ZH", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some link.f implies no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "swEy5Prqs8Af8hZLL", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-13 16:49:51"}
{"_id": "i6eWoormYNsCw5bbc", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t Protected not in Trash\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wcgaibsTi7w2GAy8k", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:27:13"}
{"_id": "bQoFmoNrh4kkNhsCA", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hQnahizD9JsCX8GtQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 15:18:20"}
{"_id": "p5f7vW4T8ReWWfZGT", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f: File | not f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f: File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | not f in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f1,f2,f3: File | f1->f2 in link && f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1,f2: File | f1->f2 in link implies not f2 in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cFji58LnDBfmDc5Lk", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-31 20:49:13"}
{"_id": "LHR6gMcZ89bs82n5s", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File | no x.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "psLzjdEkajBWy9HKc", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:19:22"}
{"_id": "7qdnXnQNGe8AaRSnJ", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File & not in Protected) in Trash \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "yNt2jcQWZCW4mLCyp", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:07:55"}
{"_id": "8PHkAYNgAFbteHDgi", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.^link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xN7uGBw56fDDwL5Hq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 12:16:13"}
{"_id": "zMK4xr8Xdo39wYt5D", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  Trash <: link\n}", "derivationOf": "sEtjrqxfGBA3rsKbr", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:56:53"}
{"_id": "zjJ3RnNeg3z3X2Rd7", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g : File | f.link.Trash and g.link.Trash\n}", "derivationOf": "WhewusKTDFaYuYdSe", "msg": "This cannot be a legal relational join where\nleft hand side is f . (this/File <: link) (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:46:36"}
{"_id": "n63KKtZkr5mg7Hmxz", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile.link in Protected\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no (f.link).link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "b6fscTbcaQATLBDBM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-14 01:40:47"}
{"_id": "Tx9Yk7G29yEvJfNuS", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "aokSYXEnsSEjDra8x", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:04:31"}
{"_id": "vC3KEvP5spw9v5DrD", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall t:Trash | t.link in Trash\n}", "derivationOf": "KPbEnNjdFbE7zGpHE", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File": {"x": 513.5999755859375, "y": 199.13333129882812}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-11-3 18:31:48"}
{"_id": "ymsfKktnkA8bj5aaN", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.Link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "B2K6YXB7N6r3ZD3MJ", "msg": "The name \"Link\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:28:28"}
{"_id": "27BfssvTP4sJs6WE8", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-4 16:28:55"}
{"_id": "C7GYaBECvBdRabjJH", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 13:13:03"}
{"_id": "5WzP5tSgtG5TkJLbL", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  File = Trash\n  no Protected\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NDaRuKLwwmZZdrmPv", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:15:29"}
{"_id": "TeeaeGXGvbqwptLNG", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nH8DDjXBXGTEC5ESS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 01:07:21"}
{"_id": "6HuKnMk7vNLzfo6fN", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   not Protected in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all l1: File.link |   all l2: File.link | l2 & l1 = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JspNLXBt22MTbBkbf", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 16:15:56"}
{"_id": "zx6rE4yvAXvd2HFNM", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kxfujtvGkm3kqedR9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:22:00"}
{"_id": "XvpZ66b7kK6mxmEeF", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f . link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JSwpqfXihK98NA58w", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:24:40"}
{"_id": "4LHLvoyEmW4DQuCTF", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:Protected | no f & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link & File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MAaYKLHa3b6w4ofoZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:54:52"}
{"_id": "hG82dJ8gom8uaNwCq", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no Link\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bJWfGShaLju5RGCJH", "msg": "The name \"Link\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:59:41"}
{"_id": "rjaamxdd9zf3pguzq", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f.^link in Trash\n}", "derivationOf": "wRddYKxeu7uytdxu6", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 14:37:00"}
{"_id": "oYrzqP6J5yyuQsQjY", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  link.File in Trash => File.link in Trash\n}", "derivationOf": "StZ8BExwj8QXYD9q9", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:52:53"}
{"_id": "koFzPutEDFgXhH42h", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GFuunxwgoWvCMgDnr", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:09:56"}
{"_id": "W4H4ow6y9xfzkvrr8", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bM4NaMNnRAWQkFA6W", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 19:22:05"}
{"_id": "hW4ivhW3yMjwhRdLn", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PtjBCQ4YJZkZGKbBu", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:03:15"}
{"_id": "nWyB58zQzwN9DAjuT", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ewjfuhes8GtMdLYq2", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 21:43:12"}
{"_id": "9rBbd9f2ei7Ew3tBN", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n  \n  \n  \n}\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LNqyiXXfRms9Hqasp", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:50:19"}
{"_id": "YpTjDLTftJqPJKzam", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {  \n   all file: File |  lone file.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  File.link.link = none  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f :File | f in Trash  implies f.link in Trash   \n}", "derivationOf": "Xn5AitekmHThw67Fr", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 18:27:54"}
{"_id": "8zhxcGSCDSEBoXuX2", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f | File :one f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RQWZ4aLBcGBJYBNqj", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-12 17:05:02"}
{"_id": "mPREarPDaxpMeJZe3", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1 : File | f->f1 in link => f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t~link.link in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NvuLrsLBTDmnF4cqQ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 00:55:22"}
{"_id": "rgbZK2mK4WHhPxjoZ", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7kLNfbRP9bwCgrPqT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 17:11:55"}
{"_id": "ev46n7ABTrenJPYNX", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t Protected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4z8SBg67r8NLeP8xg", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:26:49"}
{"_id": "r4weoiPXKdDkZQQ2b", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   \n   all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  link.Trash \n}", "derivationOf": "AfYMnzNnuijBKK48m", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:38:37"}
{"_id": "rZ76k4WMAPaW6Gf5B", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some f.link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CNryKuLzN2Sg5GQuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-23 15:32:23"}
{"_id": "RdnueyJFZniHm8gJT", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all f1,f2:File | not f1 in f1.link && not f2 in f2.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BcqkumZPWpAYXf4qe", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 17:13:05"}
{"_id": "WC9ZatHir34diw6Hi", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | ((f not in Protected) and (f in Trash)) \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "S8MaCCzfDQRw6pE2F", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 14:52:21"}
{"_id": "2Sj3i7iC7AoXJESNQ", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jxJXkWmvNMw3q3Xot", "msg": "This expression failed to be typechecked line 45, column 2, filename=/tmp/alloy_heredoc6422850065908198918.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:28:55"}
{"_id": "T2JxEkwRXrQX2BNBr", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f: File | f in Trash implies f.link in Trash\n}", "derivationOf": "hcuS42qpzjvQXyc4n", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:33:06"}
{"_id": "B37qrYrAQ4m5HhHup", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GTpjq6JTZcFN4BYPf", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 14:57:41"}
{"_id": "FSCXtXn4rwB9bCScn", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f1,f2 | disj[f1.link,f2.link]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Jdfxpswdzqmq8bKNN", "msg": "There are 1 possible tokens that can appear here:\n[", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:31:59"}
{"_id": "hj7LjBMMaqNWDCd73", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7RpeaHdWyitCiSo2e", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:46:52"}
{"_id": "LTQGkuwpqoK8cJ9rj", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "s3Jyp2B58ovrB3DXJ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:41:08"}
{"_id": "cC8RLB63DofyMpErE", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tPotected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "J2st8LMA2krmePjCG", "msg": "The name \"Potected\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:25:59"}
{"_id": "fzzuLwEd59aF6J8iB", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n\npred inv7 {\n\tall f : Trash | no link.f\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no link.f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uJsNafF7BeAcLGNFp", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:26:43"}
{"_id": "StZ8BExwj8QXYD9q9", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  File.link in Trash => link.File in Trash\n}", "derivationOf": "AZyJwkzXaDsSk3j2b", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:52:27"}
{"_id": "QgD2MTTFNZFBHQ3EK", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in File-Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | link not in f.^link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Dmkx8vndBJ6DjYY45", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2021-1-8 02:37:01"}
{"_id": "XdouWfzwFBPWBs7Aq", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t~link . link in iden \n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xL3ayi5HKekkKoMiw", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:48:50"}
{"_id": "oPFumHfppHysSykNc", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tFile in some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "f5T7giHvcj6JJKg9b", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 20:15:12"}
{"_id": "8bpNhEFTSibRHmm5b", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n\t Protected = no Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oT4x94mBLBHFgpZ2T", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:21:32"}
{"_id": "yKBiayLmMpQ3Cky8f", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xYxaNyjdQXq8yRZ3C", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-10 18:00:07"}
{"_id": "SxpoByeBL5MnPDwbw", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  no Protected\n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NYZHiBXJFrLNhJRHJ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:51:00"}
{"_id": "hFGkDecqMkiTzfCdj", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x: File | x in Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DJA5f6eXDNpwkrywX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:02:29"}
{"_id": "mqhqkixu2uAuginpX", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f not in Protected and f.link in Trash implies link.f in Trash\n}", "derivationOf": "5XNfooc7xYHWfWMED", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 16:46:56"}
{"_id": "wyjRa4nnt7LmeCwE5", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File - Protected) in Trash \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "bTnxLZhhiCmKeieKr", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:11:46"}
{"_id": "dNfDrHeqpDEcHDJba", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-11-14 00:08:18"}
{"_id": "fDYM42Y2EGnqHWXr7", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "MAHdQEHMyhsPiwErW", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:29:12"}
{"_id": "uTftqSPRnyzEd6rSc", "cmd_i": 8, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | f.link implies no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\t\n}", "derivationOf": "deSYdWSKiZ4MaEKrW", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:32:13"}
{"_id": "XYFjATz6uEabrWYhC", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-13 18:30:43"}
{"_id": "bTkPs89C4NBzhNcmq", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n   \n\t\n  all f,f1,f2 : File | f->f1 + f->f2 in link implies f1=f2\n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n   \n   all f : File | all f1 : f.link | f1 not in Trash\n  \n  \n   no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  \n  \n  all f : File | all f1 : f.link | no f1\n    \n  \n  \n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n   \n   all f : File | all f1 : f.link | no f1.link\n  \n  \n  \n   no File.link.link\n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n  \tall f : File | f in Trash implies f.link in Trash\n\n    \n  \n\tTrash.link in Trash  \n  \n\n  \n  \n  \n\n}", "derivationOf": "8sc4WPXzALbqmDQta", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 18:14:50"}
{"_id": "9ZguorQjYreKdah7T", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tTrash = File - Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "R8Q489FMN46MKH6se", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:30:51"}
{"_id": "MXFnPpxqg9xmpv6ZX", "cmd_i": 9, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n  all f : File | some f.link implies no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | f.link and f in Trash implies f.link in Trash\n}", "derivationOf": "j435vBBpknbHr2NJx", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:39:19"}
{"_id": "FQ2Mje4rZEYR3ihZP", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   some f : File | some f.link \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cHt3tgiBMpjtfRGyy", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 16:04:59"}
{"_id": "es8YXYyceKcw3xf2h", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nkJcFm8NDdj76dEYm", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-11-1 16:47:27"}
{"_id": "hjjmhQcdGSRrsZZG8", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  some File.link\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MQMrLPnPZi9MGm3bp", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-12 17:11:24"}
{"_id": "ityw7QaiFiGkWh2Pq", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tgHJkkEttDFfKkmns", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:48:08"}
{"_id": "c7QS6nSGXLvyXi2Tt", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-21 18:24:44"}
{"_id": "H7nnBzNTFo7LWaboE", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 21:52:23"}
{"_id": "vcHeChNH5szruGJdc", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash <: File\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tFile = File \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\n\npred inv10 {\n}", "derivationOf": "Qv9hWkLsSEKK6nhR2", "msg": "== is redundant, because the left and right expressions always have the same value.\nLeft type = {this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:27:02"}
{"_id": "hXZyKpicYRq95dSti", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile.link in Protected\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fkwmY8vFvaNxmrGut", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-14 01:23:10"}
{"_id": "wHwrRKKHoL989nYjk", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ao6nHd75n2Lh29HEY", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:27:35"}
{"_id": "ypoZGXuut6QxmbB7d", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some f1 : File | f->f1 in link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "J58fqm72Ansvufioe", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-30 00:24:38"}
{"_id": "sEer8zPoSqMcgDJax", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-21 10:27:39"}
{"_id": "NrAgkqavniH6nT2ox", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 23:13:37"}
{"_id": "8oku8S4MbkvfdknPa", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "ihnx74wZmSCHkbXxs", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:18:20"}
{"_id": "xDXCtJ2Gz8cXCKMev", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | f in Trash => f.link in Trash\n  \t\n  \tFile.~File in iden\n}", "derivationOf": "7dQYP6jLh3AJkLY92", "msg": "~ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-15 00:52:10"}
{"_id": "NuBNeWfCK9ehermSN", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 17:58:33"}
{"_id": "eqTsjbwDioj7Pba8d", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.File & File.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "wRn7P82fpCdKyWTa8", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:40:17"}
{"_id": "FPMyEAtKiF2dyzvQc", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in File-Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.^link in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FkPHp4fDB8CngrTQb", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2021-1-8 02:41:05"}
{"_id": "DAmzBdPqz77KNJR5m", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RDNZx7MxgtHrnL4Bi", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:38:57"}
{"_id": "LktbJxAXAGGXsLdTc", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f = Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \n}\n\n/* There are no links. */\npred inv8 {\n\tno link.Trash\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n} \n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tsome link.Trash => link.Trash\n}", "derivationOf": "CmsKvzALNmAopKTQM", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 11:29:12"}
{"_id": "Ks9shtKGYimTjqdjE", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f = Protected | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sSz4uq2zDvrA5SGYW", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 22:55:12"}
{"_id": "RLRgQg7u94v3GiaHA", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f, t: File | no link.f\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "St9fgswCkHWGxMkTd", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 16:29:19"}
{"_id": "j7wtwLx9zoQmof4Y9", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f->link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | f->link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f->link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Zei2LyJF3D9yxMHE9", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-22 10:36:43"}
{"_id": "akEjFtFaoFDm2xqNF", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  File.link.link = none  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | f.link in Trash implies f in Trash\n\n}", "derivationOf": "6BLCK9HyhCxqWBr6i", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 17:41:09"}
{"_id": "KqvQWtvhLykut6JjZ", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "5vb9x26fGZrX26w9v", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:03:58"}
{"_id": "yKtPPv3aEwy4iJ2i7", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DQnb9CLk7mDvXMWbm", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 15:02:20"}
{"_id": "bjvSMBag5AygFRrPX", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n   no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iNDxhyoqA9FCDe4pu", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-6 14:32:19"}
{"_id": "FxohWsGpiFRnfR98Q", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t : Trash | no link.t\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n  all f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : Trash | f.link in Trash\n}", "derivationOf": "FEqb674nDxpgkdZxk", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:47:04"}
{"_id": "v3XH5wxxhn7qCKE5G", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f.^link in Trash and f in Trash\n}", "derivationOf": "rjaamxdd9zf3pguzq", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 14:37:19"}
{"_id": "TNTvTWhQXXi3LRntg", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f: File | not f^.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "X3zciF6a2BFPCxsHc", "msg": "There are 25 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all fun iden let lone no none one seq some sum this univ { ~", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:30:44"}
{"_id": "BhFkcHBiWhtMMKzgs", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some File = Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KFZJJkB7Xqewj5Euu", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:08:02"}
{"_id": "J58fqm72Ansvufioe", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ENiuqkCepPQXkaLcu", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:23:08"}
{"_id": "7H4zyZqgS8r6ewWJq", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  Trash . link :> Trash\n}", "derivationOf": "KkWkieLkfpzXwCYXQ", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:46:43"}
{"_id": "sPA4XmjgnreK2No9t", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-4-24 23:10:35"}
{"_id": "2a2GcH9gX8HF8k3iS", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected in Trash\n}\n\nrun {inv4 and inv4o}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "K8Z7Donf3jw6w7Bjz", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:31:09"}
{"_id": "AMvaE7hmoqEoeegib", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f in Trash => f not in Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "6nijsfQxcwuXshos7", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:23:26"}
{"_id": "HFXmnGWTepACMQbxn", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t-link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "t78z5nuWHWX4sP7gu", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:47:41"}
{"_id": "JbCQd7audajb8An3q", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1 : File | no link.f1 & f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3esEmwDxhX85fpd2S", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:11:19"}
{"_id": "bkANEpz3Afu26i4AS", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  some File.link\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "T98acT9PAgSMA9FAs", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:11:06"}
{"_id": "Qgi9CdFRuTaSBtwnL", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n\t Trash = no Protected\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9Ze4PptMZsPrFhQSb", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:24:22"}
{"_id": "XfNKq8GvNSbbfrstL", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash and not in Protected\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CQ2rGBToe7NwBdJdt", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-2 19:30:10"}
{"_id": "G2xkmQXu365vMGz4M", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,x:File | f.link x in link \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MXQnfee2LgefTBv4J", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:48:59"}
{"_id": "yrr33zjj2aMm36XWw", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden\n}\n\n\npred inv7 {\n\tno link . Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f . link in Trash\n}", "derivationOf": "Q6hw7Zj9obEZCKKAz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:53:49"}
{"_id": "WPHTi2gacJYHpKzBX", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { some File.link -> Trash implies some File -> Trash\n}", "derivationOf": "PDyeQiTbzAt4HMyh9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 08:30:55"}
{"_id": "aW7AfCNRkFtC9AH2K", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all disj f1,f2:File | disj[f1,f1.link] && disj[f2,f2.link] | f1.link & f2.link = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZoPRMrjRaidSiviqD", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 17:08:22"}
{"_id": "FHGAm5Ttf4FrPp7eY", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "x29M5BfRqzmYDFWhW", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 01:00:11"}
{"_id": "3ne23FPNpv9gQa36N", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7W7jMBLe3kNyvkX93", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-13 16:38:24"}
{"_id": "6fJ3M2KSe7ua4ARrN", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f . link\n}\n\n\npred inv7 {\n\tall f : File | no link . f\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XvpZ66b7kK6mxmEeF", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:27:44"}
{"_id": "T2H5kiro5NKEgPPaz", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no(Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\tFile - Protected in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \t\n\tone File.link\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n   File.link in Trash and \n}", "derivationOf": "yKYiFtGesdnMhnXkC", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 00:14:17"}
{"_id": "sTSM8xgmnf9MoyYJ5", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File = Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "3AK3axdJrLJuKzkh9", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:36:38"}
{"_id": "Z4i4WQpHiDxYRWdaS", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  no File\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "e6iaZ5dibiAdkD9nh", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 13:14:37"}
{"_id": "ysZSYr7mCMPN4Nq3Y", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link :> Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gXhZobd9sJtcMYKwv", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:24:40"}
{"_id": "NtrTciqvTxWezjZgc", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XomcMyirpa4nruKsW", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:10:18"}
{"_id": "EQovYWFqwMs8LRMat", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DAmzBdPqz77KNJR5m", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:40:16"}
{"_id": "MouRuXtYm2nDBKaoh", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cCHpJ6JdXKt3gvvRY", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-8 02:32:57"}
{"_id": "g3wCGn3rbCgto8stS", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:22:12"}
{"_id": "pk3fxhn4pt2Cu694G", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n\tTrash=none\n}\n\n/* All files are deleted. */\npred inv2 {\n  \t\n  \n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qmMerLoSHNGyjh3dv", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 16:21:33"}
{"_id": "b26CQiqrXKzCD6hde", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xGXNEnr4uZxgFd7Jo", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 20:51:00"}
{"_id": "iCrKkmEgkwHNGWaC4", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qRfpWLwvenynby2sD", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-12-2 12:01:39"}
{"_id": "FzZywfv55iwQXgpaC", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  some f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "veBNrBJw4noWd6Ecg", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:23:20"}
{"_id": "JWmJJwid5JdvSQTby", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "nep4xLoBbo98avh65", "msg": "The name \"f\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:00:53"}
{"_id": "qrr7HRijHYGzaHYAA", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "J2GkDb8KJwrGZzdgz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-14 00:10:44"}
{"_id": "fG7baB8cN8EygvRTv", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-30 18:06:10"}
{"_id": "DBMriDNWikY2nzpmw", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:18:55"}
{"_id": "t3neq29Pp8AazNrPW", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dxSMtwEPng9xWEvGK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 11:38:23"}
{"_id": "2uJPvco79uFdwoy8d", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all l1: File.link |   all l2: File.link | l2 & l1 = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CmzrXQ3c8uGQdRCse", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-18 12:37:55"}
{"_id": "tubeeo7NBHppjq9mt", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  (link.f in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TTD3gccqKLdHJ7Fjs", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 22:49:37"}
{"_id": "TSp4kMvid6h2xgQMD", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HPGcfp2k9rkmt9ux7", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 11:08:59"}
{"_id": "3ecWhC8BxQGhieZYc", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tnot Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "h3iExjinnNkgBLvTA", "msg": "This expression failed to be typechecked line 50, column 4, filename=/tmp/alloy_heredoc2423330800115537050.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:14:11"}
{"_id": "BPs2Cm9LXtSoRxyve", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t : Trash | link.t + t\n  \n}", "derivationOf": "K5WFKdGCvFCgyJxkM", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:47:41"}
{"_id": "owQfCGPxasZoNvnLE", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tone link.~link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mbZWjmdy8jbicRwbf", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:28:28"}
{"_id": "b2N5dXBHZ3y8sZunq", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected&Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall ((File-Protected)&Trash)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "58ygzEmrLEyhMwcfP", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:12:57"}
{"_id": "qGfKgEawDQzN6NLv7", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QqtSpQnfXtX59XFPe", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 20:35:48"}
{"_id": "aFkLXMFBPgsC5M9nY", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 16:15:55"}
{"_id": "cbaoZwsnfQs2c92Qd", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GP9wNjL9AuEocwzDJ", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-11-1 16:50:47"}
{"_id": "FtNDiMBDcrcuDt3qn", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  all f : File | some f.Trash\n  \n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RD3aywKZeNZByxcNe", "msg": "This cannot be a legal relational join where\nleft hand side is f (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:06:42"}
{"_id": "Rgy3jJ6eMNysArPeJ", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t : Trash, f : File | f.link.t \n  \n}", "derivationOf": "YQ9Pm67aehdvirbW9", "msg": "This cannot be a legal relational join where\nleft hand side is f . (this/File <: link) (type = {this/File})\nright hand side is t (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:43:01"}
{"_id": "FezY6EbMwXs7ZuPNG", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t-Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kHMdGHKog372TRC8Z", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-8 21:12:05"}
{"_id": "ehJkr55EpgXbfB2yD", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f2,f3:File | f-> f2 in link and f->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,f2:File | f->f2 in link implies f+f2 not in Trash\t\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in none->none\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sz6ZxJgbtajRb2t3x", "msg": "Subset operator is redundant, because the right subexpression is always empty.\nLeft type = {this/File->this/File}\nRight type = {none->none}", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-6-15 19:47:34"}
{"_id": "DSkxWffyEwBxpmHf7", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hAj7ckncEmid7s4aQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 15:00:59"}
{"_id": "F2rvofGspvaGFWTEP", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink.link in iden\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aobFSbyLmm7iHhhTd", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:17:45"}
{"_id": "58ygzEmrLEyhMwcfP", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected&Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall (~Protected&Trash)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GXwkosHNGyv8HGFZj", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:11:18"}
{"_id": "LDsh3QputAuFYAwk7", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n   \n\t\n  all f,f1,f2 : File | f->f1 + f->f2 in link implies f1=f2\n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n   \n\n\n  \n  \n  \n  no File.link & Trash\n  \n  all f : File.link | f not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "mL2NcDHP7xD2dBuaJ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:34:48"}
{"_id": "782DmjeLmWYnkzG6j", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n    \n  \n  some f : File | f in Trash \n\n  \n  \n  \n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "y5LnceYZNX4uteS5w", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:22:00"}
{"_id": "6vFgvtJ3bbrYHQaJ4", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yqWSumFz3bcd8XTTc", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:34:03"}
{"_id": "W6sdShDCc5MwuHmx4", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile -> Protected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qyuETQbBYiYotxS9C", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:35:29"}
{"_id": "jZccwMPzLsMxiY8j5", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n\npred inv7 {\n\tall f,f1 : File | f->f1 in link implies f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "L5N3a5xTJHmb3LhCe", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:27:29"}
{"_id": "Y4eLPHvTg8wdT7Rq6", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink in Trash implies ^link in Trash\n}", "derivationOf": "LqdEwAnXR45xj4zmJ", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:06:03"}
{"_id": "G3b2tQwnjQwfctAmk", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link in File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bNc9k9ngjqTq2X9ZT", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-2 19:24:21"}
{"_id": "r9ExtMR5CxQ2PG5iJ", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tFile.link  & Trash => File in Trash\n}", "derivationOf": "7bKTpqEBqdhp6nqSq", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 01:17:21"}
{"_id": "kkZmmyQfKMNHSMMMp", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t~(no link)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "okDaJcukaqjdZtaDP", "msg": "This expression failed to be typechecked line 60, column 2, filename=/tmp/alloy_heredoc17442554078577489532.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-18 20:46:29"}
{"_id": "LKznTNWtNeuG7raqX", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n  \n  \n  no Protected & Trash\n  \n  \n}\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "o6tK7u944DkmGeG5F", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:51:43"}
{"_id": "w3kJSeuM2NHddMCXa", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  \t\n}", "derivationOf": "gwqdRw7kgS5wKoBwY", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-30 00:04:33"}
{"_id": "hCxfrv8RQ9G3E55hi", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CHxBCEqjBFjLSYdEu", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-10 17:58:11"}
{"_id": "8LaEupEFXytyX9dH7", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | lone link.f\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YddyrANHM2ZAeEa7L", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-23 15:35:23"}
{"_id": "QX8zMjuvWtxwvhKFP", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n  not Protected & Trash\n}\n\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KQukeCgfHfMXjMpLW", "msg": "This expression failed to be typechecked line 56, column 3, filename=/tmp/alloy_heredoc7194078673122002224.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:29:04"}
{"_id": "gHfBBJCMcyY9SixM6", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Trash & ^Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zH7ZhRG52ZjLZqgkv", "msg": "^ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:08:55"}
{"_id": "qExA6svWmBTwdHbzo", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n    File not in Protected implies  File in Trash\n\n  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MQhrk42EZLihy8cEt", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-14 23:25:27"}
{"_id": "xTgdSQNz3zTYiKkXR", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "A5SCfQNBRHZk7EwYh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 14:49:31"}
{"_id": "yBR72QBWErgTSibFQ", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link <: Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink.link in iden\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "748zT3mfHw89iTcrN", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:18:34"}
{"_id": "M5RxefbZjDGB4z54i", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  all f: File | no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 14:54:18"}
{"_id": "P9W9bxiFF7feKYvLQ", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File - Protected) in Trash  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "QJCY3hLtRhMc8RK6F", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:12:24"}
{"_id": "okDaJcukaqjdZtaDP", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "rBuG5XTE9kLRQbsxi", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-18 20:45:48"}
{"_id": "uSZ8xdfkb9BAMFj8o", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DPoZMM7YJh7wHHg6K", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:20:24"}
{"_id": "sT9aDPLefBQ5jdzKX", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  Trash <: link implies link :> Trash\n}", "derivationOf": "FFC5MKw3fdgiEEB6u", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:57:50"}
{"_id": "mL2NcDHP7xD2dBuaJ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n   \n\t\n  all f,f1,f2 : File | f->f1 + f->f2 in link implies f1=f2\n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n   \n\n\n  \n  \n  \n  \n  all f : File.link | f not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "uTihAbXR4Cq96zXdR", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:32:20"}
{"_id": "EdJmkwWjmKBSRwXuT", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CNc3YwtrjQBN3m5Mi", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:27:21"}
{"_id": "nsiHD8cy8Gm7n3pEA", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no link.f1 & link.f1\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "C4KmMH7TQKQJEa4Qq", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:10:42"}
{"_id": "hK6NXjNh6Q8XkxexS", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link . link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  (Trash.link) :> Trash\n}", "derivationOf": "QczPJhGSSjEP5KC4v", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:03:01"}
{"_id": "Qv9hWkLsSEKK6nhR2", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash <: File\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tFile = File \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\n\npred inv10 {\n\tlink.Trash\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 11:26:53"}
{"_id": "BbBZzksvvmoXKGqjF", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t-link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "bPQPMz38tDtYjNLmT", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File": {"x": 470.3937683105469, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-10-3 10:05:11"}
{"_id": "w9bwMBmzKpfNXAwTg", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "LhYTPf94sX9BoP2Hd", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-22 19:12:12"}
{"_id": "YusraFexwyJPeLbPn", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n   \n\t\n  all f,f1,f2 : File | f->f1 + f->f2 in link implies f1=f2\n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n   \n   all f : File | all f1 : f.link | f1 not in Trash\n  \n  \n   no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  \n    \n\n  \n  \n  \n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "542jmgpYSpu2nRWdn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:39:51"}
{"_id": "cN6vpKJECvSssiFsD", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n\npred inv7 {\n  all f:File | some f1,f2:File-f | f->f1 in link and f->f2 in link implies f1=f2 \n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "3j5EETNLRxTockoGG", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:32:15"}
{"_id": "CrBijGifJm9mNE9o4", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \t\n  \tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "Fzhm2WYFR758Y9vpR", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-28 09:31:24"}
{"_id": "wufZBCiGF2bivHRcP", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some f.link implies no link.f\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "mb933TgmbTMwSst9Y", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:54:25"}
{"_id": "8MX4F2GcmyaM6SRrb", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "CGbKS7tZbRzM7z8sy", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:58:28"}
{"_id": "oeNRY2fT5wqeTobR3", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | all l : f.link | f in Trash implies l in Trash\n  \n}", "derivationOf": "kD7JjmLmM4vWvhtQn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:21:37"}
{"_id": "f3SagC2JBPJFqtdCS", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | link.f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "uKNYv5tjJisfi2dqM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:21:28"}
{"_id": "gNSPYAwSBKFxYHrvv", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in File-Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MouRuXtYm2nDBKaoh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-8 02:33:16"}
{"_id": "y5LnceYZNX4uteS5w", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n    \n\n  \n  \n  \n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "3P8Bfgdb2HL22Gm6Q", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:21:48"}
{"_id": "Rg8iYgmkRs7cFhMgg", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xZPWeNfm8p4JDRNxT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:38:00"}
{"_id": "yKvSFgmf4uxdWz7Fe", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6S4EnxdJnDxF9YsJR", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-18 17:43:49"}
{"_id": "MEfj5qqtba3erABHB", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \tall t:Trash | t.link in Trash\n}", "derivationOf": "QYbsxK8rvRzK84oEM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-8 18:29:34"}
{"_id": "WEPGnn59DWPe8wKPu", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n\npred inv7 {\n\tall f : Trash | no link.f\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f . link in Trash\n}", "derivationOf": "hxfXJn7thFtyg4hnF", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}]}, "nodePositions": {"File0": {"x": 381.3333435058594, "y": 265.3333333333333}, "File1": {"x": 381.3333435058594, "y": 132.66666666666666}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-10-3 09:36:49"}
{"_id": "tDPyw494rLcFCXYuw", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SPeqEdEXZx4oxQ3cS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 16:54:52"}
{"_id": "rczaWCtzj6zj6eMuC", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { some File.link -> Trash implies some File -> Trash\n}", "derivationOf": "8hivxBXWckzeoNFoS", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-14 08:31:31"}
{"_id": "dSY6MsZ9kxgCv3R4q", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Jfk8XMjyFdTbwgvEC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:23:35"}
{"_id": "e8289hmBstuK3eEdg", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all link : File.link | lone link \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7snWckBH82gjrPEto", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-18 12:08:37"}
{"_id": "rBizWo3DYnBikWgNb", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash <: File\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WEM4YdNdshQScdohZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:35:11"}
{"_id": "pd8tZ8eHNRbcNrpbw", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TFgaZSX8QEx244vEw", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:09:43"}
{"_id": "3RN3zgptHxZmC87PE", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1: File | all f2: file | f1.link != f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xZrxfC6bGt7STn94A", "msg": "The name \"file\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:27:35"}
{"_id": "ayojB8LdXBG2w7Mdm", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tFile = Trash - Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "o9fX9kpovvNAbFed4", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 22:47:17"}
{"_id": "gJjB3GLMpB6qrsdwE", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in File-Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | f not in (f.~link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PZsQazMhJk3ZBPXYG", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 21:55:31"}
{"_id": "3cuktMhgSWzY7jmDM", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3vhuu8NZKeL5Mwxva", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 01:09:04"}
{"_id": "N9ENGiezg7Ji3eRQn", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    all f:File | some f1,f2:File | (f->f1 in link and f->f2 in link) implies f1=f2 or f=f1 or f=f2 \n}\n\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link implies f1 not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "F5JWffy36k9f64No6", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:43:40"}
{"_id": "EKhsXXj58JQqyAAYG", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  Protected != Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "B589GpcoTJKR8FvPf", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:58:21"}
{"_id": "i7G5opdoaNfoP4xmt", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File - Protected | f in Trash\n  no f:Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gFZF53BpFLNJyDRM4", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-10 18:04:58"}
{"_id": "FKCY8YRcPmoLAn3TH", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ewAFkB3DXpkFxGxJv", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:59:02"}
{"_id": "sEBciLFicq85Xv3DM", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t : Trash | no link.t\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  link in Trash->Trash\n}", "derivationOf": "NWhaJKs8TC4PE5u4d", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:41:34"}
{"_id": "FHYzqYSJXSd7dviJg", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tProtected.Trash in iden\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Gb9rAfiJ3Jvqvu5RT", "msg": "This cannot be a legal relational join where\nleft hand side is this/Protected (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 23:00:36"}
{"_id": "Sf5zxxTMCJHTDWrqj", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall p : not Protected | p in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aaJkNMCEaCGBAEzCw", "msg": "This expression failed to be typechecked line 50, column 10, filename=/tmp/alloy_heredoc6792105196507926075.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-22 10:30:25"}
{"_id": "FwFT3wyMAczfBKHhz", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "k6vQHYfx849Z9eRrc", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 23:24:33"}
{"_id": "ayjBNa4A58M48SDGB", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { all t: File | t in Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TSp4kMvid6h2xgQMD", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 11:14:58"}
{"_id": "ZYzMFCnef7CHpPdSZ", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash . link in Trash\n}", "derivationOf": "phRuJLHAFjixTwgNz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:05:47"}
{"_id": "gJ5hMDZbzDfP9Wy5W", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file : File. | lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zonypWCT4JgX4xy8W", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:02:10"}
{"_id": "tWGTihtS4vzBEhzXS", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6qnNjHf5v9rGyjRMo", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-25 13:02:59"}
{"_id": "RJ7oE5Tmt9FLo7H69", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qqKZybxmoeavAoJ4N", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:18:21"}
{"_id": "NpDWQq4urboNEHxAz", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in File-Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno (File.link).link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gJjB3GLMpB6qrsdwE", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 21:57:05"}
{"_id": "2SYXBd6ev3k5Gefuz", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tlink.~link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FotjzDZLNRk2hD9K6", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 18:51:16"}
{"_id": "B2K6YXB7N6r3ZD3MJ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kr7Q9qEuFvwcEZace", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:28:10"}
{"_id": "NTwrfu6D3AX3RJ4xy", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n\t File in Trash\n  \t no Proteected\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "L6PpAwbBD3gSE2Bvz", "msg": "The name \"Proteected\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:28:34"}
{"_id": "aAZbiskejHi39j8d7", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash in File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WNXmTH7T6crvZhZk6", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 20:36:10"}
{"_id": "M38hPMeJZJBRjotvw", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link + f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cryK7iJN3xkJJRTnb", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:24:17"}
{"_id": "vMRxEcBWvhWyTz4w5", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-18 09:32:37"}
{"_id": "oT4x94mBLBHFgpZ2T", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n\tno Protected = Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3pD524ZT9YhmFS55j", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:21:24"}
{"_id": "CGbKS7tZbRzM7z8sy", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "WtwiP7AcHK8NFXsjM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:57:26"}
{"_id": "rRrDLdJwidgh37otC", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "932zFiGuqKGo4pwgE", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-26 02:33:49"}
{"_id": "42r8ajL5NpmC7Czwp", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9xPJCQHcsCWCRkbY5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 00:49:48"}
{"_id": "jDj3SQ7zrewhCxBCp", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "veP3JcbFB7pfJunJr", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-25 12:59:46"}
{"_id": "psD3MMJwMMQFYZveg", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Eyx6EMPm8vSsjFKDi", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:21:11"}
{"_id": "mDKymnHFMbzgebK5C", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some File in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kM9ivdnJpY998RpRg", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 15:05:25"}
{"_id": "rnkyieBfL9etXTa6X", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2~.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.^link in Trash \n}", "derivationOf": "LsEChE9TC6GcTnWP7", "msg": "There are 25 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all fun iden let lone no none one seq some sum this univ { ~", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:39:39"}
{"_id": "SRwefMuYan5QLEmTc", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  link in Trash->Trash\n}", "derivationOf": "3R8jreRF7pXWfhiQm", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:32:55"}
{"_id": "4ANtaHwzTcft2Y8JH", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | one f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ePh8jXn8ATFQ4XbBC", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-23 15:35:13"}
{"_id": "upv8Q4Zb4Adp3M6EK", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tno Protected -> Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6SYGB6hWSYYrx4F7k", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:28:32"}
{"_id": "s6JSWu7a99mAWnwY8", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  File : lone file.link \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mwy9XyAMyLx6m4HvQ", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 11:51:31"}
{"_id": "dAQPF3fNRZsxkCTjH", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ac2vgDRRs6S4tDb6H", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-30 18:27:29"}
{"_id": "yxCftTnk35f2FKrgC", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "XLZP5M4YNECh5wD8c", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 17:00:06"}
{"_id": "e7DcLH3o8qwA9j5yZ", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  File some  Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qH34RbgPfcqv7x9Nc", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:20:14"}
{"_id": "xL3ayi5HKekkKoMiw", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8A2XtAymX2TDexgr2", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:42:15"}
{"_id": "NLzwvQRBbcNvNQvwH", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "5Qreiwx6o8FBPWYhq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:04:42"}
{"_id": "aFNQAac8YfcznkSaW", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \nall f:File |  f.link implies  no( f.link.link )\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aaMXF5NrMCM7dnrCg", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 23:50:03"}
{"_id": "3iEvqB33DhHWAQmsq", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f: File | not f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f: File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | not f in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f1,f2,f3: File | f1->f2 in link && f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1,f2: File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f1,f2:File | not f1->f2 in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1,f2,f3: File | f1->f2 in link implies f2->f3 not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1,f2: File | f1->f2 in link && f2 in Trash implies f1 in Trash\n}", "derivationOf": "ef9iqBmgA9a785RZC", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-31 21:00:37"}
{"_id": "nkiwkNKyXoKBPzdNs", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t : Trash | no link.t\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : Trash | f.link in Trash\n}", "derivationOf": "Py7Ai9odujPhKBHzW", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:42:58"}
{"_id": "TxRMJGL8jn5Qi8jt7", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tsome Protected -> Trash\n}\n\n\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Cu5LnTZHCdyenJdYK", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:45:27"}
{"_id": "JhYpsLoPESYuCKBBQ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  link.File not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tWNyCvWnA5LvbGv9p", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:29:49"}
{"_id": "93iG9WRoXuHLQ78Rr", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t-link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hjmdpAn6NEJCCiNEw", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:50:33"}
{"_id": "mconoAGvZHe9Hydr2", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f.^link in Trash and f in Trash\n}", "derivationOf": "k4qZRbb6rtw3mQ6aq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 14:38:42"}
{"_id": "Q4KEzXAHt4e32BpkA", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2LKLCXjE8QNcbc3ej", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:23:34"}
{"_id": "R9YhfZzLWAKTRSWYn", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Sf5zxxTMCJHTDWrqj", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-22 10:30:55"}
{"_id": "X8zr3aruXg2TC7mPM", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n  \n  \n}", "derivationOf": "BPs2Cm9LXtSoRxyve", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 16:52:47"}
{"_id": "6Cq8XRCp9G757Zviy", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \nall f:File |  f.link implies ((f.link).link) in Trash\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mz3awtsjSwXLxkCG8", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 23:49:13"}
{"_id": "92x4qAoCuJuyHjqdw", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   \n   all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  some f : File | f.link in Trash implies f in Trash\n}", "derivationOf": "ud8GftKA94BfzmPYc", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:40:38"}
{"_id": "zK2D3ghpYBcs2ux86", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1,f2:File | disj[f1.link,f2.link]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yPkQJmaXZMoLbWJmm", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 16:33:05"}
{"_id": "ShSnnfhnsMkLTKCmf", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile->Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WPrFqybmjisqAdAxi", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:20:20"}
{"_id": "Y3eHBbjYAWedWRYXB", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some link.f implies no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | some link.f and f in Trash implies f.link in Trash\n}", "derivationOf": "99HCrvPJrk2b7DG9K", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-13 16:52:33"}
{"_id": "ogKn88LQBGsoq7v4Y", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zzc9gXhvwwGngHz4K", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:19:58"}
{"_id": "j225L2o6TFviKZ9FJ", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wLQ4fftuyHNpPtZGG", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 22:43:09"}
{"_id": "XBPsCMSwGG88QLPrf", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n  \n  \n   (File / Protected) & Trash\n  \n  \n}\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CfbT4YypGxjMuw7xd", "msg": "The name \"File/Protected\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:52:41"}
{"_id": "mExMNvXMrkJx79NRK", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | no Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "3m2Zm7RnT4yHXRMmQ", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:59:57"}
{"_id": "gQ4G4QFkSoy9rgRrF", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink.link not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MXmezfJBpDnjA68z6", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 01:14:57"}
{"_id": "rj4vNk4bpbZHpSXqZ", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile.link in Protected\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:file | no (f.link).link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hXZyKpicYRq95dSti", "msg": "The name \"file\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-11-14 01:25:42"}
{"_id": "ZWQJ8p3SftHcNWyvc", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some File & Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   not Protected in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all l1: File.link |   all l2: File.link | l2 & l1 = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nLMAPXfNnQ4YkGMW6", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 16:18:34"}
{"_id": "6RqftRbp9JAyGMb9b", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sBonAHnBw3hfQmhSR", "msg": "This expression failed to be typechecked line 45, column 2, filename=/tmp/alloy_heredoc2778227372053548372.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:28:00"}
{"_id": "cKSRrZYtt5zSosXek", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  link.f  implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\nno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QjYAJCqg6aSx6Phgt", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 23:37:12"}
{"_id": "yAtgta8oMFwNy9mPn", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File - Protected | f in Trash \n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f.link in Trash \n}", "derivationOf": "nkjmgPhQDfZBm7uwg", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-25 13:15:01"}
{"_id": "s5jdE8YmfenPpbTcm", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f1,f2:File | f1.^link & f2.^link = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zK2D3ghpYBcs2ux86", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 16:37:51"}
{"_id": "Ffz6JJxpaGJ3JP7ye", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dixaETmTwyWJ52YeB", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 01:13:05"}
{"_id": "HZFfZ22p69SKsae2i", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash in none \n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "k8Y6JH5EJcrRz4sGu", "msg": "Subset operator is redundant, because the right subexpression is always empty.\nLeft type = {this/File}\nRight type = {none}", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-6-15 19:37:33"}
{"_id": "y67s4Kovxozyxn4vZ", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File-Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash | f.link in Trash\n}", "derivationOf": "Pxs5nKD9Pu5gnGnvB", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 22:41:08"}
{"_id": "ac2vgDRRs6S4tDb6H", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FEn3Hx4BEoF7yhCi3", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-30 18:26:09"}
{"_id": "5jZbWe4G95mj5ucky", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8HacrC8EjNACDh3p5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 20:07:31"}
{"_id": "KWomcbFERuXc8jXKP", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \tlink.Trash in Trash\n}", "derivationOf": "ZPu4LhT5QNsPxvnpz", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:36:00"}
{"_id": "gzGdJim8aYMe29DR2", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RLRgQg7u94v3GiaHA", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 16:30:13"}
{"_id": "5Qreiwx6o8FBPWYhq", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "8MX4F2GcmyaM6SRrb", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:59:08"}
{"_id": "nPFmZDTg8q6uGnwDz", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some (File-Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "W86kGCCZkkhh2nJ9J", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 21:22:39"}
{"_id": "nbxcdRbj86JuzmwRu", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \tall t:Trash | t.link in Trash\n}", "derivationOf": "MEfj5qqtba3erABHB", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File0": {"x": 798.65625, "y": 199}, "File1": {"x": 399.328125, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-1-8 18:29:52"}
{"_id": "ZSp8miyc6t62DY498", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.^link in Trash\n  \t\n}", "derivationOf": "Ny2dniztJEBmgARZP", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-30 00:13:32"}
{"_id": "x7rDjwDyihRZarnRS", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all disj f1,f2:File | f1.*link & f2.*link = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aW7AfCNRkFtC9AH2K", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 17:10:14"}
{"_id": "7HqK8ABPCWWhwc6cB", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KxxhraoJre2v7RFRZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:33:59"}
{"_id": "WoRR3GRzGTGBkmriy", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aCnWsjQha3cwivYiF", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-30 00:08:48"}
{"_id": "pZX63WftGNocHxhQA", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZnQuNAGbWuKCDqYZt", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:29:19"}
{"_id": "aEt7N6N3m7WkG2Nij", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { File.link -> Trash implies File -> Trash \n}", "derivationOf": "q4RWwMHJCwG5iEovt", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-13 22:51:10"}
{"_id": "sEbGf7M2uWapspdMH", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "L546vCqifxkSm22Jt", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 21:46:09"}
{"_id": "uRdFxGqXugBongGEB", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (Trash.link)\n}\n\n/* There are no links. */\npred inv8 {\n  no (link)\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8r6AAEN7vZpdcENNy", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:40:37"}
{"_id": "exPiy2HLbai7Atvtk", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link :> Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RHDDRt6QDtRFKLeJN", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:25:16"}
{"_id": "ykZomwiP9yCi2ZDEm", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  Trash = (File - Protected)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kLg2t5Z3Y9rzghy8T", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 20:12:43"}
{"_id": "ri9J3CYad3wwSHMnE", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n    /* A file is potentially a link to other files. */\n  link : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (link.Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | (f in Trash) implies f.link in Trash  \n}", "derivationOf": "9McnooYZrmXBbKECX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:28:53"}
{"_id": "AhKmgNcccANwXLdHW", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t: Trash | lone t.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | \n}", "derivationOf": "R6Hkh5tgny7gesY6s", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:51:09"}
{"_id": "qRfpWLwvenynby2sD", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "K2xxJzoG5ykLocKui", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-12-2 12:01:22"}
{"_id": "Y7Kp99G5gDS5G2wPB", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "ky6TnZPvSdnQgNAAh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:22:42"}
{"_id": "AmHpmdYJvTg2SSjfT", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  all f : File | some f.inTrash\n  \n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FtNDiMBDcrcuDt3qn", "msg": "The name \"inTrash\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:06:48"}
{"_id": "aokSYXEnsSEjDra8x", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link & Trash . ~ link\n}", "derivationOf": "bQZ6k9iey3Fh6HAzu", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:04:10"}
{"_id": "FijysxvExt2jtAe8k", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t : File  | some t in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "K2tK5GAHt3EZHg6nG", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 11:20:51"}
{"_id": "j435vBBpknbHr2NJx", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n  all f : File | some f.link implies no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | some f.link and f in Trash implies f.link in Trash\n}", "derivationOf": "qGGQKt5eEKRktGuiB", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:38:25"}
{"_id": "JQkmRHcgaQMsfbMdh", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\nno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-10 18:08:37"}
{"_id": "TJSxbBJ6J65WnrBi5", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "53zu7SX9dJ4ZgBAzf", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:29:41"}
{"_id": "A5SCfQNBRHZk7EwYh", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sNkHxHkLcau5gomRc", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 14:48:44"}
{"_id": "uFCoDwaMazxExk9hi", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  all f : File | some f = Trash\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qwWeBL4apA2KKTP58", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 19:05:38"}
{"_id": "AadwFhsJf7M72FJzQ", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File / Pretected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bvHDX5v8Yhn5A6KER", "msg": "The name \"File/Pretected\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:33:27"}
{"_id": "2mAuf3zcMXyYbDjZu", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  File = Trash + Protected\n  some Trash\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LzSciNReYhhMor2z5", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:00:58"}
{"_id": "ekjTgLRMkiRxqniRR", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "PsEnFjcnvyGk8Pb3v", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:43:28"}
{"_id": "ker5icYe6iz7YmH9p", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tlink.~link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "W3Dnyn3KQaZTk8WoD", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:44:08"}
{"_id": "sabCPTeyFbtem2u3B", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {  \n   all file: File |  lone file.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  File.link.link = none  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  File in Trash implies File.link in Trash \n}", "derivationOf": "mh4N77J6cYBEDk5cd", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 18:22:43"}
{"_id": "oGLmTC9LCenjnRNqF", "cmd_i": 9, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n  all f : File | some f.link implies no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | some f.link & f in Trash implies f.link in Trash\n}", "derivationOf": "rD6DpYA4mhP9Nc9eP", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:36:35"}
{"_id": "iNDxhyoqA9FCDe4pu", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n   no File in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3vyv8SdGBJepXKKSq", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-6 14:31:35"}
{"_id": "DeFBkEWfMv2e6vpLG", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "eKbBk76bTGpyLC8ve", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-26 02:34:31"}
{"_id": "cgogykstgAAckSz2C", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f.^link in Trash implies f in Trash \n}", "derivationOf": "bS4xZRcahrGes3m8L", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:38:36"}
{"_id": "C42bwux76ZnXvSHsh", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  some File.link\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bkANEpz3Afu26i4AS", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-12 17:11:10"}
{"_id": "Ngcp2Sm6gJXBQrj2n", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "7JZ2zMgi2SEtkb7ij", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 20:13:04"}
{"_id": "PsEnFjcnvyGk8Pb3v", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "YhgvoRTZ89aWMkX5q", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:43:25"}
{"_id": "fWs3T2adBhJLDTEHy", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   not Protected in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all l1: File.link |   all l2: File.link | l2 & l1 = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2rfbfZ4C3xqg9mAKC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 16:16:48"}
{"_id": "iTHqjLnpjyrZLxRLH", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n File.Protected in Trash\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "jMSTxMpTDpgLypeNT", "msg": "This cannot be a legal relational join where\nleft hand side is this/File (type = {this/File})\nright hand side is this/Protected (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-13 17:54:17"}
{"_id": "sYhwhKCzQ9qfPRhTs", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  lone link.f\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "owcSgkXpvKChMSjww", "msg": "The name \"f\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-24 23:36:54"}
{"_id": "yz3nLiu7e4R5at9up", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3cnGhRzCbzRmLuhcu", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:34:18"}
{"_id": "ncA2CZgbJ6Lhpi9nE", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { all t: File | t in Trash and t not in Protected\n\n}\n\n/* All files are deleted. */\npred inv2 { \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ayjBNa4A58M48SDGB", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 11:15:17"}
{"_id": "aQS6KWyiBkHXJJbPZ", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tFile = Prepared - Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YGho7JM26mPKcSQn7", "msg": "The name \"Prepared\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 22:46:46"}
{"_id": "u8nto5orcCWbFvrRk", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  Trash.link.Trash\n}", "derivationOf": "2QvPD2A4RorpSbX77", "msg": "This cannot be a legal relational join where\nleft hand side is this/Trash . (this/File <: link) (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:42:13"}
{"_id": "XCvBg3iYT5LTCR3yJ", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.link.Trash\n}", "derivationOf": "SeZQWdyxZpSGa2wFB", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 11:28:47"}
{"_id": "3S2Sgd3qx8L6B4YSZ", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "pAd5r4DnbhoNQAqLA", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:04:30"}
{"_id": "QoMADCXr77uKgrb3B", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t : Trash | no link.t\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YfXnxtMtPb2TQJnwi", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:37:02"}
{"_id": "ao6nHd75n2Lh29HEY", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "s3HLdYEQ29MZBc369", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:27:22"}
{"_id": "bXG9AbTjLS9p9GMuP", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f:File | f.link not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LmtaKd7FH3aR4sPzB", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-24 23:41:46"}
{"_id": "dFfmfrZ9y2mizKKqB", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f: File | not f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f: File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no f: Protected | not f in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NFGZsN2FnCjwhwS2b", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-31 20:40:54"}
{"_id": "yPkQJmaXZMoLbWJmm", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f1,f2:File | disj[f1.link,f2.link]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FSCXtXn4rwB9bCScn", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 16:32:06"}
{"_id": "Zdp4N5RxqPtMzckZG", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f->link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "R9YhfZzLWAKTRSWYn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-22 10:31:43"}
{"_id": "dSFDrchvs77MBjTyv", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f = Protected <: Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "r9Ww2g8zLdaae5hHg", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 22:48:11"}
{"_id": "s38b8w4GEitTTCRYH", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  ( some f.link | f.link not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.^link in Trash\n  \t\n}", "derivationOf": "ggmTNKjL85t99mhTa", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-30 00:08:39"}
{"_id": "2LX3w5B4RzvNHmB69", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "f3SagC2JBPJFqtdCS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:22:31"}
{"_id": "wnMKspJrn3xG6C9X4", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\nno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n Trash. in Trash\n}", "derivationOf": "nsdkWeAQaw9ntBqps", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-9-10 18:10:31"}
{"_id": "vBFha2eQzTByWzQzW", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f = Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \n}\n\n/* There are no links. */\npred inv8 {\n\tno link.Trash\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n} \n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "LktbJxAXAGGXsLdTc", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:29:21"}
{"_id": "jogGhNDpMriYHb7rt", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HJdWp7HjN7LDRFwyQ", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:24:11"}
{"_id": "dAGKKZGwEgLkbLg9r", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n    /* A file is potentially a link to other files. */\n  link : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (link.Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | (f in Trash) implies f.link in Trash  \n}", "derivationOf": "JNj88vR4xbJT4jYma", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:28:43"}
{"_id": "R7qKhtvQDkeYhm33m", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "D2kT5u8u4Xus5QThM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-30 18:08:42"}
{"_id": "LpWrwk2fvHgCa2Kwu", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  no (Protected-Trash)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yTXfYBdBe3GvTu7Pv", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 21:35:50"}
{"_id": "dRAfwwXtmnZ64ZB3c", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File - Protected) in Trash  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "P9W9bxiFF7feKYvLQ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 10:12:26"}
{"_id": "DKAQPJ3kSnDMGYjdM", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n  \tall f:File/Unprotected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "DdgkZtRz9m5BGCw7s", "msg": "The name \"File/Unprotected\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:22:13"}
{"_id": "3vcv5BDcPEtxLbjSA", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n   \n\t\n  all f,f1,f2 : File | f->f1 + f->f2 in link implies f1=f\n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "znsqefAzYBgrWqJk4", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-12 17:29:03"}
{"_id": "cFji58LnDBfmDc5Lk", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f: File | not f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f: File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | not f in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | #(f.link) < 2\n  all f1,f2,f3: File | f1->f2 in link && f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TaYC58YKK8i67x5Xf", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-31 20:47:00"}
{"_id": "TWNMcHtoZBoYDyRtu", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File - Protected) in Trash  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "ghqCrKfqwCLTdPMPk", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File0": {"x": 444, "y": 132.66666666666666}, "File1": {"x": 444, "y": 265.3333333333333}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-10-3 10:13:38"}
{"_id": "nRERvRHfQxmwz4Aw7", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f->link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | lone f->link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xfLKf7EnbXDtZJF8f", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-22 10:33:27"}
{"_id": "wCBbfaQGbqZse2pra", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all l1: File.link |   all l2: File.link | l2 & l1 = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BefpZQkGttyYfna25", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 16:21:51"}
{"_id": "JTbha8Fp2i7nm8tCF", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f2,f3:File | (f-> f2 and f->f3 )implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SjqqPsKeSYZg2XkEt", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-6-15 19:42:19"}
{"_id": "HQskmdLw46WpPYyDn", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1: File | all f2: File | f1.link != f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3RN3zgptHxZmC87PE", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-18 12:27:45"}
{"_id": "nE2vov45MLmKggfKi", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  all Trash & no Protected\n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9QW3gyuFipWs5g4MW", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:37:36"}
{"_id": "s8xCTM7t6N9biv5pY", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tnot Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tGm7m8nZqFQJBo4ds", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:26:50"}
{"_id": "ky6TnZPvSdnQgNAAh", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall l:link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "ggbRwzaAqs5H4fbJB", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-27 21:22:26"}
{"_id": "7WmhGNoR6FTdWgdzD", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iiJ5RQWfasApKNXNQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 17:10:13"}
{"_id": "qNABB7WJycx6xRAve", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "77v76YB84Zfx7uQLj", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:33:29"}
{"_id": "bjSYqi2QTjokF5tX5", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | all l : f.link | f in Trash implies l in Trash\n  \n}", "derivationOf": "oeNRY2fT5wqeTobR3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:21:41"}
{"_id": "J2x7RWEhT59EHjAXK", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8YNgG9Qnj6sWv93qn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:26:03"}
{"_id": "r4mnZGM5astewSFCE", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f2,f3:File | f-> f2 in link and f->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in none\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cPNLJdYjDgMuTyE3e", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {none}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-6-15 19:43:20"}
{"_id": "xfLKf7EnbXDtZJF8f", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f->link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | f->link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Zdp4N5RxqPtMzckZG", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-22 10:33:14"}
{"_id": "FEqb674nDxpgkdZxk", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n  all f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : Trash | f.link in Trash\n}", "derivationOf": "ZHzxNpSMhc8sfKNbG", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:44:24"}
{"_id": "s5yLNCn6Ghe8Q2Yhs", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ed3eK4nGe2uHszmWD", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 14:26:59"}
{"_id": "ZPPNvJzcyCpF3Kbkp", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rTNDgvz27QeEa58j2", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-18 17:47:08"}
{"_id": "NJXKa8HhnGELrCwLh", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CysAe4n952kvSADz9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:42:04"}
{"_id": "35Luy37N7rNxMpX8d", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  \t(File & Trash).link in Trash\n}", "derivationOf": "LH8wP3YE6zAqqhaGL", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-30 18:43:13"}
{"_id": "4gkXie2MBuYKTLTb5", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tnone in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tsjpXnS7nLyZoRBpH", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {none}\nRight type = {this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:30:17"}
{"_id": "GA63y94yfx6K6X2xB", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno (File.link . File.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EQRvHiCAXX7j3MBXe", "msg": "This cannot be a legal relational join where\nleft hand side is this/File . (this/File <: link) (type = {this/File})\nright hand side is this/File (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:00:15"}
{"_id": "wvYBLk42roaqGMZio", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GibxhGc5S3LEH5gmM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:12:29"}
{"_id": "5CfaY9ACXf46Rj2Mh", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link->Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink.link in iden\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TEHBqsaSmZNdFwv9A", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:18:10"}
{"_id": "9KYr5ZC77L5s4KhdY", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all p:Protected | not p in Trash\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "dcLzpDnJD6futbESv", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-13 17:55:27"}
{"_id": "wWK7ix52nXFujKWJW", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pDcs3yNjTFnMmREJP", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-18 11:41:27"}
{"_id": "fYEK2Fdz2SMuBrZMm", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some File = Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no File = Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cnAWCYJa6HkffDgpL", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 18:56:50"}
{"_id": "fFsFiGdvLf8D8ApDA", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n  \n    \n\n  \n  \n  \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "782DmjeLmWYnkzG6j", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:22:48"}
{"_id": "FxpbTxKdRrazCCp8u", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SL3crsyow6DvaYwjz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-13 16:44:28"}
{"_id": "pB7Y9ALuWZu5o9imj", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash => f.link in Trash\n}", "derivationOf": "i8nq6sra5MxkgS9ZZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-4 15:05:10"}
{"_id": "v2CPf4Wy6uZALefct", "cmd_i": 0, "code": "open util/ordering[Step]\n\nsig Stack {}\n\nsig Step {\n\tcharterer: Stack,\n\tviewer: Stack,\n\twebpage: Webpage,\n\taction: lone Action\n} {\n\tviewer = charterer\n}\n\nenum Webpage { overview, form, details_page }\nenum Action { click_create, provide_details }\n\nfact initial_state {\n\tfirst.webpage = overview\n}\n\nfact final_state {\n\tlast.webpage = details_page\n}\n\nfact create_voyage {\n\t\n\tfirst.action = click_create\n\t\n\tall s: Step {\n\t\tlet s2 = s.next {\t\t\n\t\t\t\n\t\t\ts.webpage = overview and s.action = click_create => \n\t\t\t\ts2.webpage = form and s2.action = provide_details\n\t\n\t\t\t\n\t\t\ts.webpage = form and s.action = provide_details =>\n\t\t\t\ts2.webpage = form and s2.action = click_create\n\t\n\t\t\t\n\t\t\ts.webpage = form and s.action = click_create =>\n\t\t\t\ts2.action = none and s2.webpage = details_page\n\t\t}\n\t}\n}\n\nfact authorization {\n\tall disj s, s2: Step |\n\t\ts.charterer = s2.charterer\n}\n\nassert visibility {\n\tno s: Step | s.viewer != first.viewer\n}\n\nassert lastPage {\n\tlast.webpage = details_page\n}\n\ncheck visibility for 10 but 5 Stack\nrun{}  for 4 but exactly 5 Stack", "derivationOf": "FPkpw5mZt6NejJJBL", "msg": "The name \"Trash\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-4-7 22:11:34"}
{"_id": "oZYf4ynqpX27TL65Q", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 { some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AG5vpxu7AnTykSxGr", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-14 16:11:47"}
{"_id": "YfXnxtMtPb2TQJnwi", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t : Trash | no link.t\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File |\n}", "derivationOf": "nBHCcBSg7iGx5Jx9c", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:36:51"}
{"_id": "owcSgkXpvKChMSjww", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  some link.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CTfKPaqMWXZrtSMFF", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-24 23:36:09"}
{"_id": "B8gMRak7XRbcQAws5", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  \n}", "derivationOf": "X8zr3aruXg2TC7mPM", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File": {"x": 262, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-10-31 16:54:18"}
{"_id": "8xssZvTJizHW9HH2i", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eLwhBgE3eHCBk7qfS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-14 00:17:20"}
{"_id": "3A4im7j9ZTeHhybQ6", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-4-7 22:09:55"}
{"_id": "XHN2PuKpiTTYWGk2H", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File - Protected | f in Trash\n  no f:Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.File & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gaLqWQZbTXRFN88p7", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-10 18:06:11"}
{"_id": "oH2aAdDTdsn2K9o2y", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { File.link -> Trash implies File -> Trash\n}", "derivationOf": "q4RWwMHJCwG5iEovt", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-11-13 22:50:47"}
{"_id": "s5eFuMbhqZYYzoZ3y", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no link.f1 & link.f2\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nsiHD8cy8Gm7n3pEA", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:10:46"}
{"_id": "3sGbknwaPjNgWCPep", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in File-Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f in f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zzyCwW23G3Y2piJNg", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 21:54:25"}
{"_id": "mRLDvHssFRmQeJx5z", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n\tTrash=none\n}\n\n/* All files are deleted. */\npred inv2 {\n  \t\n  \n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pk3fxhn4pt2Cu694G", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 16:23:21"}
{"_id": "TnqSwWPb6hAfb3WFB", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2ayxtZPfjRQAeNSwo", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-10 15:09:43"}
{"_id": "boZECYMRmRb5NMrrx", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n no Protected & Trash  \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "a6jizoGd3NtTa79hZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 18:34:34"}
{"_id": "zQ2grrjwSRHaPPGJc", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tno Protected & File = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CaYxbDzFYufrfrA2a", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 22:57:20"}
{"_id": "Tpyjq6AqsmfRsWZFW", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n  all f:File | f not in Protected implies f in Trash\n  \n  File & Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n  all f:File | lone f.link\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "L2amYSYr3DbT89Ku6", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:41:11"}
{"_id": "qRXXBJ7PCMooSPN3L", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n  \tno Trash & Protected\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oGge6orkethw9BatW", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:43:12"}
{"_id": "bTrfYC3rYbpHsKwPi", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tProtected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XT6nHRCEQmuef6Eue", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-13 16:40:38"}
{"_id": "nsdkWeAQaw9ntBqps", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\nno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n link.Trash in Trash\n}", "derivationOf": "MNXDGjfQtJzTmqSzT", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-10 18:10:10"}
{"_id": "GTpjq6JTZcFN4BYPf", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash + Protected\n  no Protected | all Trash\n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "P97cCak84yRAyPN5L", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 14:57:28"}
{"_id": "8PKMDHZ2xzLhp6MKe", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden\n}\n\n\npred inv7 {\n\tno link . Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  \tTrash . link in Trash\n}", "derivationOf": "f5nHKCtvDwXYwG97a", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:59:58"}
{"_id": "6LivyA2P38D7kwZX3", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PGvA6HroZwdHcv4Dt", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-22 10:27:57"}
{"_id": "QJCY3hLtRhMc8RK6F", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File - Protected) in Trash  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "rAfihJTjWRawNofN5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:12:21"}
{"_id": "byx9yNh3nnLvD6soZ", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f = Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | some f.link => f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tsome link.Trash => ~link.Trash\n}", "derivationOf": "qMPgfNzfSXSY7GnSc", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 11:23:49"}
{"_id": "Dan8EaEdNSC5Q9uf8", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:19:12"}
{"_id": "FQWzf3W8BQfiXXGJf", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  Trash <: link\n}", "derivationOf": "zMK4xr8Xdo39wYt5D", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:57:01"}
{"_id": "s3HLdYEQ29MZBc369", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:27:20"}
{"_id": "5gdBXy7m7rJz4pGHk", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "sh74T2Rh4ENHjWZuq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:33:58"}
{"_id": "ZkqeEHuofeNfQTWw9", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  some File.Trash\n\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Mb5TDF5o8jBpCXFrZ", "msg": "This cannot be a legal relational join where\nleft hand side is this/File (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 19:02:46"}
{"_id": "49sAaoBohr62pb7sD", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JuAL6SHAFr8Lxv8dk", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:29:09"}
{"_id": "kus9WMnJGTdDxicGn", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f: File | not f.*link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sE8zsSkr2Js4v3QWL", "msg": "This expression failed to be typechecked line 69, column 16, filename=/tmp/alloy_heredoc2831915279246340898.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:31:17"}
{"_id": "wvRbmFsoKurq5FxnF", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f1,f2:File | f1.link & f2.link = none \n  all f1,f2:File | disj[f1,f1.link] | disj[f1.link,f2.link]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "M5ddBc6EYZS233e4n", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:56:31"}
{"_id": "8FbAfSQhrscF9wq2E", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link - f2.^link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WieizAAP9bH4pPtvz", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:24:35"}
{"_id": "rBSvuEdH6x7vMbSv3", "cmd_i": 8, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | f.link implies no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\t\n}", "derivationOf": "HCdCQPMyB8fFiBvRE", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:30:00"}
{"_id": "M5x6KzE2ASNRPZDw8", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t : File  | some t.link\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { all t: Protected | t not in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oYZReP9Gb7sbg8C5W", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 11:54:17"}
{"_id": "M9v33iy7LYKmwygDq", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-30 14:47:11"}
{"_id": "YTB36WeNvKcjCLbYa", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f,f': File | f.link == f'.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "S4nBduGxveqrtwxeN", "msg": "There are 1 possible tokens that can appear here:\n[", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:29:52"}
{"_id": "t6Ld47Rk2tsX4ycfb", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | not (f.link in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "EfPoetoMnNivNkvri", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 13:42:51"}
{"_id": "eTfbn9h4sBGEEjP6S", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno File in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5XWJwG6whShCuK9db", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-12-31 19:53:29"}
{"_id": "7kLNfbRP9bwCgrPqT", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bcyHpdKpzSRqErbbY", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 17:11:45"}
{"_id": "oYZReP9Gb7sbg8C5W", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t : File  | some t.link\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { all t: Protected | t in t.^Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "J8oChhRmywezFQKCk", "msg": "^ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 11:53:59"}
{"_id": "uTW36YkCeb8GDQTwB", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f1,f2:File | f1.^link = f1.*link | f2.^link = f1.*link | f1.link & f2.link = none \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fG5S3Mn9eDtNfBqaT", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:50:02"}
{"_id": "NWhaJKs8TC4PE5u4d", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t : Trash | no link.t\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  link in Trash->Trash\n}", "derivationOf": "QoMADCXr77uKgrb3B", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:41:31"}
{"_id": "RpZCfM4om6LSiYpes", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7buSEpLaFa5mpzaDX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:03:49"}
{"_id": "zxviikxavEH4mMTJ9", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\nno link.link\n\n\n/* A link does not link to another link. */\npred inv9 {\nno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "G8jfi7soYeaJvAmXh", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-9-10 18:07:58"}
{"_id": "kY5RazGafANwW9EKm", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8xssZvTJizHW9HH2i", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-11-14 01:03:25"}
{"_id": "XJJXRk6cf7JA9yv5o", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "duKcfxLJQfKaoLSyf", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-15 00:04:39"}
{"_id": "G9tkL59GuWhWixjnZ", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sBvbf2Fr6FCZJapJM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-8 02:29:06"}
{"_id": "4XCqhAQh4gzA6KSXM", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.^link in Trash\n  \t\n}", "derivationOf": "8jDMDpk9jMbGEy8F5", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-30 00:13:03"}
{"_id": "i8nq6sra5MxkgS9ZZ", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9DfXRSyFSeMXRBMsf", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-4 15:03:58"}
{"_id": "cM2PziTmTzjWSSERC", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ncA2CZgbJ6Lhpi9nE", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 11:17:28"}
{"_id": "cHt3tgiBMpjtfRGyy", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   all f : File | some f.link\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "K5SypiATSJbpdfCam", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 16:02:21"}
{"_id": "Dq6fbZpnib6ogYmXd", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f:File | no f.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "bkw4ToLn24hqhxajb", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-24 23:44:49"}
{"_id": "HcuSqaMwvQTTcrfgd", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "e7DcLH3o8qwA9j5yZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 18:20:59"}
{"_id": "yoP2kd7eQgdD3tqTP", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-10 18:07:15"}
{"_id": "SzXuvzpz3vvAJpivb", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aEvns4X8pEaWuqAXP", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-22 10:28:27"}
{"_id": "rTNDgvz27QeEa58j2", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LtrgefZTb8xvsKPq2", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-18 17:46:39"}
{"_id": "CuMMnQTQs8NLihETZ", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "549fXieYFWCjmjhMb", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:09:39"}
{"_id": "D9CuCyYeKgjCLb9dh", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CQYtaaaeYdYgrccNp", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 21:05:27"}
{"_id": "r84sAZeRBCZGcBQ3C", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \t\n  \tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : File.link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  \tall f : File, l : f.link | f in Trash => l in Trash\n}", "derivationOf": "QrAhHLvh4YcLpC8Xc", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-28 09:36:37"}
{"_id": "ATdJ6BexcBWprRN2Z", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RCtoAqAJmm3TLsfYZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:19:46"}
{"_id": "2HSvDjc7fxbjPtaDi", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  File = Trash\n  some Trarsh\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2mAuf3zcMXyYbDjZu", "msg": "The name \"Trarsh\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:01:58"}
{"_id": "FngwJ7Q74jEdZwTnT", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    all f:File | some f1,f2:File | (f->f1 in link and f->f2 in link) implies f1=f2 or f=f1 or f=f2 \n}\n\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link implies f1 not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "BcSNCd2srZM6NBNnx", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:43:35"}
{"_id": "BheKWt6eBT73Np7Ju", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  ( some x:f.link ) implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.^link in Trash\n  \t\n}", "derivationOf": "J2pZuZXnAkZXHKy9k", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-30 00:07:39"}
{"_id": "GK7on673pW3W5cgbW", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  Trash = File\n  no Protected\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vwP6rtoR2Z9uJkp2p", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:19:51"}
{"_id": "cDra5XWhiSsmzH5eH", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash in Trash\n}\n\n\n\n", "derivationOf": "CJg8F6z7YYeHrZHtH", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-18 20:52:29"}
{"_id": "subyYjfayccGS5evh", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2r95bfJkpCgbFngsW", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-10 15:03:36"}
{"_id": "BdjopviBFuTXQJHjZ", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash - Files\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "m9mtRqsGeg97Ae3bi", "msg": "The name \"Files\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:25:30"}
{"_id": "f5w7fzBJHRnYK6psa", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jMXv6TxstZfaThkbh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:07:33"}
{"_id": "YFjS4vL36amJRNBNY", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  (f.link) not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oFnLGSTRMGv6oaH3G", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 22:51:44"}
{"_id": "PLySEr7a2gWDAppiK", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies all f.^link in Trash\n}", "derivationOf": "HCNd34Ss9kZFtumCa", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:48:21"}
{"_id": "DtZye95jKYoNDNErJ", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n\tTrash=none\n}\n\n/* All files are deleted. */\npred inv2 {\n  \t\n  \n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sJ97sYgD25HpxN7dP", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 16:19:37"}
{"_id": "MAHdQEHMyhsPiwErW", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "HziGwdQNfiAFGNuXt", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:28:41"}
{"_id": "PsFdBLeW8Jg39mrsX", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-4 02:43:58"}
{"_id": "DPRWssF97ZTCmTdxK", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone (f.link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "qJ9W2SCxMRzfM8rBv", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-21 18:29:58"}
{"_id": "8L5roavMXkcPwWbyR", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link implies not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bSy2DhM4nSeWapAX4", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:26:36"}
{"_id": "kxfujtvGkm3kqedR9", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8Q3fKNAeS9Lf6pw5b", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:20:49"}
{"_id": "jc89kbDJzPmz8BQAJ", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n   \n\t\n  all f,f1,f2 : File | f->f1 + f->f2 in link implies f1=f2\n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "3vcv5BDcPEtxLbjSA", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:29:07"}
{"_id": "mXnti2Jt97cwqCyQj", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  Trash = File + Protected\n  no Protected\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GK7on673pW3W5cgbW", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:19:57"}
{"_id": "Y2nMQbdgQwojJtLQk", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  Trash = File - Protected\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f1,f2,f3: File | f1->f2 in link && f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1,f2: File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f1,f2:File | not f1->f2 in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1,f2,f3: File | f1->f2 in link implies f2->f3 not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1,f2: File | f1->f2 in link && f1 in Trash implies f2 in Trash\n}", "derivationOf": "wgJNWCFyENpvTXMLo", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-31 21:42:39"}
{"_id": "pZ43qCZ85eFbgqGfh", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  File = Trash\n  some Trash\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2HSvDjc7fxbjPtaDi", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:02:05"}
{"_id": "LLGFvrTgWBhdo7Ymh", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (no Protected) = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4maG68MdKBjqhG6RN", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-2 21:33:37"}
{"_id": "Kgis9L9A5yXJuruHG", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g: File | f->g in link implies no g.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "Az3nydxmAhRofmapt", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:43:11"}
{"_id": "bNrhqHyzqWjpCgcka", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tProtected :> Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Z55LRCjYrALwD52Gp", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:53:07"}
{"_id": "JuYcN9cYg6dciQz2t", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all file: File | file.^link = file.*link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HZSDibnGH224eeYoT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 12:24:29"}
{"_id": "dQPQRjkbA8vHYXLxK", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "SZmRxrfPYwEdaEFJc", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:43:33"}
{"_id": "DazyjJzz4kuopwHpd", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  no Protectd \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "z6Pw2wikSRoq9sTfc", "msg": "The name \"Protectd\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 14:56:39"}
{"_id": "KQukeCgfHfMXjMpLW", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \tnot Protected in Trash\n}\n\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3pfv9eoWYJw2WYECj", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:28:45"}
{"_id": "iffwYGKJPkAAHWQLL", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wHwrRKKHoL989nYjk", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:27:36"}
{"_id": "2LKLCXjE8QNcbc3ej", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hEZaf8SEF5smuBDfX", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:23:15"}
{"_id": "DmPmD2hhKeqcoDkEo", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t-link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "HFXmnGWTepACMQbxn", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:47:53"}
{"_id": "Az4kmaqAg6h6KKAPb", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t : Trash | link.t \n  \n}", "derivationOf": "v6zYLYqsh623kYKyA", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:40:36"}
{"_id": "zZHT6HzFcCCu6Xw9H", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DHmERjquPdTyrsXFq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:45:23"}
{"_id": "3dQ2RpmqG43iFARJH", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | link.f in Trash implies f in Trash\n}", "derivationOf": "4e7j9eg5eZa94rsTq", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:32:19"}
{"_id": "BzcWKcCgBg6dwZ5HZ", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  link.~link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vGjmEZZkFoahWincB", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:28:44"}
{"_id": "DdixsZkGxaFmHEbPz", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Jv7xdapB6ZxWizT9i", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 01:05:12"}
{"_id": "ThvtdRJESdJnuktuo", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "J88RRri9mS97C4kWa", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 20:08:13"}
{"_id": "G4JCawoYyLszuffZK", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  File in Protected :> File not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hR37wEuHvM7LXG9cx", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:20:22"}
{"_id": "ZjiYN7zKX6CPRanyX", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "w7tgfYk2K9PbGEArp", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:33:16"}
{"_id": "GdXK8Fx7EdWzeFmf3", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t not Protected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "mnLe76dRJAoRyZJGZ", "msg": "This expression failed to be typechecked line 52, column 3, filename=/tmp/alloy_heredoc3236189031523320691.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:05:57"}
{"_id": "WpeA9D568yQiXMQ69", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tno Trash.link in Trash\n}", "derivationOf": "EBRbS3NTqG4KtR2QW", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-11-10 15:11:10"}
{"_id": "5kCRw6TBTh6hZRA8S", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1 : File | f->f1 in link => f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink.~link not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WPA6FesiKz3LBpfzt", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 00:55:31"}
{"_id": "kjb2FTsrjoTnotZmB", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f = Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tsome link.Trash => ~link.Trash\n}", "derivationOf": "byx9yNh3nnLvD6soZ", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 11:28:25"}
{"_id": "5znrijk4dpXHmjao5", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\tFile.Link in Protected\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "k8Bydf69QEcfXPF9f", "msg": "The name \"Link\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-11-14 01:22:16"}
{"_id": "TSxcbop6ebgYAN9uq", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  Trahs = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8ea3qQ7tHcHTnWS3E", "msg": "The name \"Trahs\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:11:45"}
{"_id": "3AK3axdJrLJuKzkh9", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File = Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "i5o4K8Pw9NmT6ty4K", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:36:23"}
{"_id": "s87hGD9hDdP9c47iR", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "L5GqDoLNw3WFj3ihy", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:25:08"}
{"_id": "rDXC5CocBcQ82RsCH", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tone Trash -> Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Y2HquEetXfBLKY9rh", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:46:03"}
{"_id": "FoeqH9w6npzJqmSnb", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AtLWbLHu56PmshXyR", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-18 17:48:26"}
{"_id": "m3GQAHnFy39WRkk6m", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x: File | no f.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fLQhPdFXtvirfC738", "msg": "The name \"f\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:19:29"}
{"_id": "WQkNTv7GrFEzvQMgs", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "DmPmD2hhKeqcoDkEo", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:48:09"}
{"_id": "NYCFf9wA5jtmG6dKC", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no(Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\tFile - Protected in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \t\n\tlone link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SZG7tEqAut4W6nf8g", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 00:09:33"}
{"_id": "4rRLKfHRMn8fLzDGT", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EeG3Bkb7jqxrvwXMr", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-8 15:06:08"}
{"_id": "JuAL6SHAFr8Lxv8dk", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tFile = Protected + Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EwTX3DfcHhR57JLjh", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-23 15:28:57"}
{"_id": "LnASncHR2o9w786j8", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    all f:File | some f1,f2:File | (f->f1 in link and f->f2 in link) implies f1=f2 or f=f1 or f=f2 \n}\n\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link implies f1 not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "iPc8pqRog76boB57r", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:43:30"}
{"_id": "w6i7zoeNEHgrZpS8r", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile & Trash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tJDjn6hz6ZD5urxBE", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 20:30:38"}
{"_id": "4xBQiNr32D3i84Res", "cmd_i": 3, "code": "\nsig Node {\n   adj : set Node\n}\n\n/*\nThe graph is undirected, ie, edges are symmetric.\nhttp:\n*/\npred undirected {\n  all x, y : Node | x->y in adj implies y->x in adj\n}\n\n/*\nThe graph is oriented, ie, contains no symmetric edges.\nhttp:\n*/\npred oriented {\n  all x, y : Node | x->y in adj implies y->x not in adj\n}\n\n/*\nThe graph is acyclic, ie, contains no directed cycles.\nhttp:\n*/\npred acyclic {\n  all x : Node | no x.(^adj) & x \n}\n\n/*\nThe graph is complete, ie, every node is connected to every other node.\nhttp:\n*/\npred complete {\n  all x : Node | x.adj = Node \n}\n\n/*\nThe graph contains no loops, ie, nodes have no transitions to themselves.\nhttp:\n*/\npred noLoops {\n  all x : Node | not x->x in adj\n}\n\n/*\nThe graph is weakly connected, ie, it is possible to reach every node from every node ignoring edge direction.\nhttp:\n*/\npred weaklyConnected {\n    all x : Node | Node in x.^adj + x + x.^~adj\n}\n\n/*\nThe graph is strongly connected, ie, it is possible to reach every node from every node considering edge direction.\nhttp:\n*/\npred stonglyConnected {\n  all x : Node | Node in x.^adj + x\n}\n\n/*\nThe graph is transitive, ie, if two nodes are connected through a third node, they also are connected directly.\nhttp:\n*/\npred transitive {\n  all x, y, z : Node | x->y in adj and y->z in adj implies x->z in adj\n\n}", "derivationOf": "gEsb7GToktsA5YyJL", "msg": "The name \"Trash\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-4-16 18:29:51"}
{"_id": "RK27yGgncJetQMNcE", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3FvKND9HaG9GtApv5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-7 19:00:29"}
{"_id": "TSxuux8P9nodKgrnT", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t : File  | some t.link\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { all t: Protected | t not in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f: File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { all f: File | no link.Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jMoG6YbhoZQoeffkK", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 12:22:08"}
{"_id": "nbTS4s9B2P72g7h4v", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WS4ycqvPSft5sx2kE", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:23:25"}
{"_id": "S6SrJk2neu7TjXabd", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1 : File | f->f1 in link => f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink.link not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hcRKHS4NjPcToWtuj", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 00:54:58"}
{"_id": "X3zciF6a2BFPCxsHc", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YTfenmB84oLiQrJMQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 14:29:32"}
{"_id": "6QXcJ4mJJA5nhSibb", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash \n}", "derivationOf": "b26CQiqrXKzCD6hde", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 20:58:42"}
{"_id": "uLKY7yE5teqButRt6", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Ljti6pAiXzPcSqM4J", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 23:21:58"}
{"_id": "JT4KwJpQwH2mDtio9", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { link -> Trash\n}", "derivationOf": "u8P5AjznZhESAbsct", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-13 22:39:26"}
{"_id": "xYxaNyjdQXq8yRZ3C", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2H2MbppRFdtRbo4vH", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-10 17:59:37"}
{"_id": "2n4RDXJPQ4LumHG8r", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vhJZwYgFYejAMdAzK", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 20:12:51"}
{"_id": "qctb7qrfdXaxAseBp", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f1,f2:File | f1.link -> f2.link = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "z72keqxMcftjPzQeM", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/File->this/File}\nRight type = {none}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:41:01"}
{"_id": "rpMaTWTwCCgnbeXDm", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | no f.link in Trash & f in Trash\n}", "derivationOf": "eSGq6zh4HSGuiB2rN", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:30:52"}
{"_id": "JnjdqKtcrNrCSDRWF", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  Protected not in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "WLMKbnHzT82QL2WWJ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 20:07:21"}
{"_id": "WPA6FesiKz3LBpfzt", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1 : File | f->f1 in link => f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t~link.link not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mPREarPDaxpMeJZe3", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 00:55:26"}
{"_id": "Rba2qYNLgh6TvWqwe", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link & ~Trash.link\n}", "derivationOf": "v26jQcYWb4iXtMuBZ", "msg": "~ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:03:39"}
{"_id": "X52XoM9FoNJ5t4uj3", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all file: File | file.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZAM5rReaJTXneCtxB", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 12:19:51"}
{"_id": "oF29CAEHT9CaZXTxp", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-4-24 23:08:48"}
{"_id": "cPYYSzPdZ7BMuueqH", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone File.link\n    \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zwvDvMDdrNyxHGCKD", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 01:12:11"}
{"_id": "ejHupCREnBvBsNTPg", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "x9Ziun7qZMjXyu5zo", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 18:51:45"}
{"_id": "b6fscTbcaQATLBDBM", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile.link in Protected\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no (f.link).link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "6P7Sob89hj54GfnbH", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-14 01:40:29"}
{"_id": "G5hokNNdyyThdBkKw", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f:File | no f.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9rPJ42fi4jZpB3SDc", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-24 23:43:08"}
{"_id": "bTnxLZhhiCmKeieKr", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File & not Protected) in Trash \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "SpQFR7tHpqwapZTPZ", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:10:20"}
{"_id": "t78z5nuWHWX4sP7gu", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies f in Trash\n}", "derivationOf": "wXkaJNiSBG2wYqdYS", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:44:03"}
{"_id": "8KwdsenrG76GHK4ab", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f->link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | f->link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f->link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "j7wtwLx9zoQmof4Y9", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-22 10:38:36"}
{"_id": "vePtzdetGK5onGobk", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  Protect not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WRnJbxwSEoE7kkHxw", "msg": "The name \"Protect\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 23:28:15"}
{"_id": "WMNZwzqiya7HQY9jg", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash & link.link.Trash\n}", "derivationOf": "CafHFxQPrPq5zw8kx", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:00:52"}
{"_id": "pjuzoiuTnkeitb6gG", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xa3fKp4Bj5ZTCRt9Y", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:57:06"}
{"_id": "e3rdTeXmivpZNeamT", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected no in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HcuSqaMwvQTTcrfgd", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:21:47"}
{"_id": "TFgaZSX8QEx244vEw", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "paL8DuFzcmufb2oNL", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:09:39"}
{"_id": "LduN4849RbFL825rq", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link: f | Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f: File | \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kus9WMnJGTdDxicGn", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:33:18"}
{"_id": "wgJNWCFyENpvTXMLo", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f: File | not f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f: File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | not f in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f1,f2,f3: File | f1->f2 in link && f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1,f2: File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f1,f2:File | not f1->f2 in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1,f2,f3: File | f1->f2 in link implies f2->f3 not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1,f2: File | f1->f2 in link && f1 in Trash implies f2 in Trash\n}", "derivationOf": "3iEvqB33DhHWAQmsq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-31 21:01:27"}
{"_id": "A6NHoCc7CiXhRJ278", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l,f : File | l->f in link and l in Trash implies f in Trash\n}", "derivationOf": "yLsDDYw76vZM7vjSP", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:58:52"}
{"_id": "P5RnDLitTz2z3q45G", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tTrash <: File\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5pCRorNoqJSccf7Hd", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:33:10"}
{"_id": "fbca9aDr57NhmNMuq", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File - Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bQB6MTbhcL7rDkewv", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:30:34"}
{"_id": "EdpW7KiWSyXH5dMPY", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:Protected | no f&Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rYnNJzSPeNrSSf9oy", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-22 18:45:55"}
{"_id": "JpiaXvQL4Q7ZtGJwa", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "8LZ65ZpsipwwmBx3b", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-18 20:47:58"}
{"_id": "XFDoBYv3A45DCQqJg", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Qxq6SFC6zBi4RpgmT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 20:09:58"}
{"_id": "phRuJLHAFjixTwgNz", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash link . link\n}", "derivationOf": "GC7BzMybjZSYqjqrG", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:05:11"}
{"_id": "D7ohDdazhreZhP5sK", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WMNZwzqiya7HQY9jg", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:01:00"}
{"_id": "j7gJXBT6yy5WJPWPi", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 19:08:20"}
{"_id": "ykeCHgzjgZwjegDvk", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n not some f : Protected | f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SnRNy7XGKoHENpKHH", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:11:05"}
{"_id": "kkhC3SN7KFws24wY8", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "NMhAxm4zzrEYaTeNX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-18 20:48:54"}
{"_id": "MjDcrZrwveMFx5vRB", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tnot Protected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8Yd7d29ZSY6xLYaqc", "msg": "This expression failed to be typechecked line 50, column 2, filename=/tmp/alloy_heredoc10123105991361228324.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:37:10"}
{"_id": "hyd5Sk2qM8dACeh5L", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | no (f.link & f) in Trash\n}", "derivationOf": "mz3F9HY9vaPLnAmbn", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:32:09"}
{"_id": "gxJpSbABZ6AKeA4Tn", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n   \n\t\n  all f,f1,f2 : File | f->f1 + f->f2 in link implies f1=f2\n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n   \n   all f : File | all f1 : f.link | f1 not in Trash\n  \n  \n   no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  \n  \n  all f : File | all f1 : f.link | no f1\n    \n  \n  \n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n   \n   all f : File | all f1 : f.link | no f1.link\n  \n  \n  \n   no File.link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n  \n  all f : File | f in Trash implies f.link in Trash\n\n  \n  \n  \n\n}", "derivationOf": "Bvjv9RxyEsEp5GK6W", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:48:51"}
{"_id": "pgpymgtQAG2ZLtNMh", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KNvWn4p9JsXyPquhk", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-14 00:11:25"}
{"_id": "d4EXgEGJG2Ad7fhHm", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n    File in Trash implies  File in (Trash+File)\n\n  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qExA6svWmBTwdHbzo", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-14 23:26:23"}
{"_id": "x29M5BfRqzmYDFWhW", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f.link in Trash\n}", "derivationOf": "A6NHoCc7CiXhRJ278", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:59:46"}
{"_id": "Qtsh6X4cJrNtpxJyK", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tlink.-link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qXdzymZSWWw2wCDiJ", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:46:10"}
{"_id": "cgiW4SRhQ8ZNBHFuN", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2, f3 : File |  f1.link implies no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "M9RHtDnJfJFwnv4Xa", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:17:12"}
{"_id": "7dQYP6jLh3AJkLY92", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | f in Trash => f.link in Trash\n  \t\n  \tf.~f in iden\n}", "derivationOf": "wyhPbeqe83ph2rmeu", "msg": "The name \"f\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-15 00:52:02"}
{"_id": "4y5su5ynxG8svsGtZ", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  one File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "t3neq29Pp8AazNrPW", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 11:39:15"}
{"_id": "iHThLqcqeJftw6kME", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  \n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  no Trash & Protected\n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2TuGdqQJzGug6PXcF", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:52:31"}
{"_id": "9sACLtTWJqFaK2bJp", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tTrash - Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "S9nWHwMGhTtrQgLxy", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:40:04"}
{"_id": "R8Q489FMN46MKH6se", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uocswiuMAms64TF77", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:30:18"}
{"_id": "2H2MbppRFdtRbo4vH", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sau6McgLfo8X7tEDQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-10 17:59:27"}
{"_id": "6eQk5nSF9gWf968dx", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n  \tno Trash & Protected\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f,g,h:File | f->g in link implies g->h not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \t\n  \t\n  \n  \n\tTrash.link in Trash\t\n}", "derivationOf": "w9hx8siRuZkCi5bqm", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File0": {"x": 222, "y": 199}, "File1": {"x": 444, "y": 199}, "File2": {"x": 666, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-10-12 17:50:32"}
{"_id": "u3z7Ys4P6jbF2jtxK", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash \n}\n\n\n\n\n", "derivationOf": "gHrsaA3o8mv9rQ7bq", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File0": {"x": 349.4140625, "y": 79.6}, "File1": {"x": 349.4140625, "y": 238.79999999999998}, "File2": {"x": 349.4140625, "y": 318.4}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-1-18 20:54:55"}
{"_id": "a9a28WS4s4nwW4d47", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7HqK8ABPCWWhwc6cB", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:34:20"}
{"_id": "q7Q6d7to6hw9B5jSr", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FBtEqGmHhFgh4S78B", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-4-24 23:08:06"}
{"_id": "fNoNzns2x6zZgZwN4", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  file & Trash = some  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   not Protected in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all l1: File.link |   all l2: File.link | l2 & l1 = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sxBPk42wkff265gSy", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:18:06"}
{"_id": "Bh9QYdTWBMPQkjhF4", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "K75Ke9gNcxJouDukx", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-21 18:26:55"}
{"_id": "yMdwHgAnKpoqX4C6d", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FxBNu6ZWJrahFnFNE", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:25:05"}
{"_id": "HRhYzGy5kaNWxnfqE", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | f1.link - f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HBZsq7eaixjadpD3E", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:21:32"}
{"_id": "CQYtaaaeYdYgrccNp", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uQ6eX39gCRLEiAsz3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 21:05:11"}
{"_id": "C6DHQofsSgg9xZna4", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some f.link implies no link.f\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "QXSJWDPLvryfSyjHN", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:44:12"}
{"_id": "Pxs5nKD9Pu5gnGnvB", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File-Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash\n}", "derivationOf": "RMEwP8KGXA4YfZ6hN", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-12 22:40:59"}
{"_id": "T4C7hKkWzy4o4svN9", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in File-Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iYGhfsWXr6PydMkoi", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 21:49:42"}
{"_id": "DPNHbHDivsQaN5sCM", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no File in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:03:30"}
{"_id": "EQRvHiCAXX7j3MBXe", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno (File.link . File.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EvkzGZnDkLZ87X7wE", "msg": "This cannot be a legal relational join where\nleft hand side is this/File . (this/File <: link) (type = {this/File})\nright hand side is this/File (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 19:58:43"}
{"_id": "cnjTZoF9GEC2D7T3j", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n\t all p : Protected | no Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Qgi9CdFRuTaSBtwnL", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:25:04"}
{"_id": "9rPb62jKMRsfYrXih", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "WMx7GoPuF4tWMSh2Y", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 13:34:43"}
{"_id": "3Wo5frKp5NQNbKJm2", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "fqoaM4Zr2PpbyfXQj", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:59:40"}
{"_id": "BGFjeDkMGfCxgvr2f", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "8oLo6u9WgtdPqZmfM", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File": {"x": 364.16668701171875, "y": 199.16665649414062}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-1-8 21:51:55"}
{"_id": "Z55LRCjYrALwD52Gp", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tlone Protected -> Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ARw9BRZ8LRotARfjD", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:46:23"}
{"_id": "XT6nHRCEQmuef6Eue", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Htu2WyxFNcT5Gypms", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-13 16:39:43"}
{"_id": "8u7f4YbvvN2NY9ihN", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(not Protected) & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YWLAkY22CQLDe3tdX", "msg": "This expression failed to be typechecked line 52, column 3, filename=/tmp/alloy_heredoc15931845541860001067.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:36:31"}
{"_id": "HanJ5BuvZoC2Mx5D2", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n  \n  \n   (not Protected) & Trash\n  \n  \n}\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LKznTNWtNeuG7raqX", "msg": "This expression failed to be typechecked line 72, column 5, filename=/tmp/alloy_heredoc4215229155248990141.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:52:23"}
{"_id": "Z4m8n7AcLKiDkRwFe", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone link :> f\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yBpv73uj8PTbfksPC", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:22:30"}
{"_id": "vGsBRizchtZ9xbJPT", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n    \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n  \t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.^link in Trash \n}", "derivationOf": "jZnHaqjexcG9qWD9i", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:42:40"}
{"_id": "ZNxAgkJoajbo8Rhye", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Z4i4WQpHiDxYRWdaS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 13:14:52"}
{"_id": "iPc8pqRog76boB57r", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    all f:File | some f1,f2:File | (f->f1 in link and f->f2 in link) implies f1=f2 or f=f1 or f=f2 \n}\n\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link implies f1 not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "Xu65fb5GKza6JrZnS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:43:27"}
{"_id": "mywSzXKJmKyXjYHZy", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-5-28 05:02:47"}
{"_id": "5YFJnbDerMGy8KYfY", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t(File & no Protected) \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EPx5vrpAFozfNSdso", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:36:06"}
{"_id": "aBKmtd5qL3bH2bhwa", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f.Protected - f.Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "j225L2o6TFviKZ9FJ", "msg": "This cannot be a legal relational join where\nleft hand side is f (type = {this/File})\nright hand side is this/Protected (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 22:46:03"}
{"_id": "e8y3dFyH3se4u5LwR", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n\t-link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "C2tSBdoDRaiiMJhEp", "msg": "- can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:46:12"}
{"_id": "AG5vpxu7AnTykSxGr", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 { some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bPSESoWZovmLnC84t", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 16:10:24"}
{"_id": "8ZXLZ72CvbXEFMWBi", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f: File.link | f in Trash implies f.link in Trash\n}", "derivationOf": "FKeYWwhxCSMEqMRFm", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:15:02"}
{"_id": "S4WH8xxdXLa9KyCJm", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t : File  | some t.link\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { all t: Protected | t not in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f: File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link.Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link.link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "umqicwT3gNx3xKHvN", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 12:26:12"}
{"_id": "BsrhYTNapGzLkWB3H", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tFile - Trash in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \tno Trash . link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "Lywrh6eFtyEmxaXRX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-18 17:45:47"}
{"_id": "77v76YB84Zfx7uQLj", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kLP2bESFWcgFTAzRr", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:33:02"}
{"_id": "xsA66TvZa4QNzZzBW", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nW4gRYqguHcz4b2SQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:05:42"}
{"_id": "ghMcgkbKuyj7qjFep", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {  \n   all file: File |  lone file.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  File.link.link = none  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  File in Trash implies File.link in Trash \n}", "derivationOf": "Hajb9S58XT7FbL2tq", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 18:23:24"}
{"_id": "buHG6ehwnaxApZwqP", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RnnwWq7JGrLTno7Xf", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 16:55:52"}
{"_id": "b3HMYYfwgT4vLaxnn", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (Trash.link)\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  Trash.link.Trash\n}", "derivationOf": "u8nto5orcCWbFvrRk", "msg": "This cannot be a legal relational join where\nleft hand side is this/Trash . (this/File <: link) (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:45:24"}
{"_id": "cF6kPAJ79DC6qLYEA", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tone File.links\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "RS8zmqSwTGHiHBz8m", "msg": "The name \"links\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-18 17:53:12"}
{"_id": "5coHFQEZPyxheCxp9", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFiles = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \t\n \tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Mq8LkS4ui3s7ZxRHR", "msg": "The name \"Files\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 11:07:45"}
{"_id": "dPA2Ygs3hW6eJa2h8", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "buHG6ehwnaxApZwqP", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 16:56:04"}
{"_id": "yR8g2iMeQutEbmpJZ", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash <: File\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "P5RnDLitTz2z3q45G", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:33:29"}
{"_id": "4aTcYQkTbSkwcANGM", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "z6pn3LEcR6gzdoEQm", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:04:18"}
{"_id": "WLMKbnHzT82QL2WWJ", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  Protected in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "Tb3B8MzNhvt2trYdY", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 20:07:08"}
{"_id": "yfw59zmH3oC6u2fsQ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:00:44"}
{"_id": "ufABgQ4b4fa2YSAeA", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n not some f : Protected | f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File.link | f.link lone\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AtdNw2p4gYqN4YsTk", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:09:10"}
{"_id": "i8Rca6xL7vLfmTsDB", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "a4oFTJpaZ6vPWXpkh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 14:53:58"}
{"_id": "uWNacZcanRnmHAkQi", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FMo7afuCL5vggNMFn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 18:34:32"}
{"_id": "sz6ZxJgbtajRb2t3x", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f2,f3:File | f-> f2 in link and f->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,f2:File | f->f2 in link implies f+f2 not in Trash\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uYYXkjzCBGsL7bLAL", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-6-15 19:47:00"}
{"_id": "RGxCCjrjccbcYrD7k", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:17:36"}
{"_id": "ScKNehKPA2uwPtxbr", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tTrash = Trash - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sTBgqa72bKpXjF9ay", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:01:32"}
{"_id": "RKxkkGRsKQdXxHjtQ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File \n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected  in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { some File.link -> Trash implies some File -> Trash\n}", "derivationOf": "iyKpXgktpcEQCNx5z", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 08:36:02"}
{"_id": "9HsSSZ287YaRDSkX7", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1: File | all f2: File | f1.link & f2.link = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GGj2qm2eCkuTBKMPD", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-18 12:28:46"}
{"_id": "fT5PYvbethbE3xTsJ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "i8Rca6xL7vLfmTsDB", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 14:53:59"}
{"_id": "HX3akHKR3NpL3o9N5", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EYMwR94NPhSMfKeiw", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-12-2 12:02:51"}
{"_id": "FEn3Hx4BEoF7yhCi3", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Db4oH8sTHodYKpfSn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-30 18:21:09"}
{"_id": "FpagQyzTJ9GvJrBbR", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tnot Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "s8xCTM7t6N9biv5pY", "msg": "This expression failed to be typechecked line 45, column 2, filename=/tmp/alloy_heredoc17692157291795280101.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:27:59"}
{"_id": "QYbsxK8rvRzK84oEM", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t:Trash | t.link in Trash\n}", "derivationOf": "ut5pqnqupFZXFCJqK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-8 18:29:25"}
{"_id": "hoWYcGHd7pjhJZrab", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in File-Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno (File.link).link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FPMyEAtKiF2dyzvQc", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-8 02:42:12"}
{"_id": "6nijsfQxcwuXshos7", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f in Trash <=> f not in Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "9hWL4TKh2dPyRPLx8", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:23:05"}
{"_id": "Larr8D6KGYwbwRrPr", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\nno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JQkmRHcgaQMsfbMdh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-10 18:08:44"}
{"_id": "zNcr2MN9Y469qvrDN", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f:File | no f.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "G5hokNNdyyThdBkKw", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-24 23:43:21"}
{"_id": "PjhKnyeJnodGtxJF3", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1:File,f2:File | not f1.link = f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "emLDkHffLTdsE9MYK", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:50:37"}
{"_id": "SeZQWdyxZpSGa2wFB", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash\n}", "derivationOf": "b77LsHEPwKsGPnDhp", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 11:28:08"}
{"_id": "BefpZQkGttyYfna25", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all l1: File.link |   all l2: File.link | l2 & l1 = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5Fyeiss5tvS4wo7Pc", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 16:21:46"}
{"_id": "yBXSq4DcdMoNDqugp", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all fl: File.link | all f: File | fl in Trash and fl.link.f implies f in Trash\n}", "derivationOf": "8ZXLZ72CvbXEFMWBi", "msg": "This cannot be a legal relational join where\nleft hand side is fl . (this/File <: link) (type = {this/File})\nright hand side is f (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:16:53"}
{"_id": "JERmKhxpndKScne4n", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n   \n\t\n  all f,f1,f2 : File | f->f1 + f->f2 in link implies f1=f2\n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n   \n   all f : File | all f1 : f.link | f1 not in Trash\n  \n  \n   no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  \n   \n  \n   all f : File | all f1 : f.link | no f1\n    \n\n  \n  \n  \n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "YusraFexwyJPeLbPn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:40:39"}
{"_id": "bWCC9j9dgvwwYua5m", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "WfG34mKAfvkzMdW3c", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:26:48"}
{"_id": "kwkkBq7yXtCD4wka7", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File - Protected) in Trash  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "nGWitHo7znRPtYuxX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:12:10"}
{"_id": "SmdTAp88AN5eaegoH", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in File-Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno (File.link).link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n\n}", "derivationOf": "hoWYcGHd7pjhJZrab", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-8 02:42:25"}
{"_id": "m9hB3zvTbTrdnjjLD", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mnFAEwDQLNNmYyh9k", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-19 21:40:37"}
{"_id": "dojJ4aGZCXkbx6BME", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n    \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cPYYSzPdZ7BMuueqH", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 01:12:39"}
{"_id": "ENiuqkCepPQXkaLcu", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qtk3ynuZfvcSLxPyM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:11:50"}
{"_id": "AtdNw2p4gYqN4YsTk", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n not some f : Protected | f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File.link | f.link is lone\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7vfc2E6tzHK2cTdQs", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:09:00"}
{"_id": "QqtSpQnfXtX59XFPe", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JR9J5CyBguyesrZ2E", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 20:35:33"}
{"_id": "FeqroJzqCZHNxmCD9", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gFrsb85or5GW4MQ5C", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 20:35:03"}
{"_id": "FdnYKcKmDWC7rKKth", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "bdiMWWLz2nuH5rxR9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-26 02:34:20"}
{"_id": "md7f8duWhp9wGiyEu", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f . link\n}\n\n\npred inv7 {\n\tall f : File | no link.f\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6fJ3M2KSe7ua4ARrN", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:27:52"}
{"_id": "Syb8fsq839fyDDWsN", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t(some File.link in Trash) implies some Tash.link\t\n}\n\n\n\n", "derivationOf": "5pqRdsyNvc3AqDh2M", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-18 20:51:10"}
{"_id": "iSTf7ZmyJ62jX89GA", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all l1: File.link |   all l2: File.link | l2 & l1 = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "74RChAfSbQ2sxa3fh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 16:20:21"}
{"_id": "6LA7Dz9kJC36v2R3G", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fTPtQ5GR9cL5EDsTP", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:28:35"}
{"_id": "e2Foi3pPnbeyJdu7d", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jev5G2PeeWDiYEhLy", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:22:56"}
{"_id": "NbDwEWfYAX3yaBrZr", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "G3wKGXKERYh7XdX6i", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:17:24"}
{"_id": "gc9GGyM3zTP5xzPKu", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f1,f2:File | f1.link & f2.link = none \n  all f1,f2:File | disj[f1,f1.link] | disj[f2,f2.link]| disj[f1.link,f2.link]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wvRbmFsoKurq5FxnF", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:57:01"}
{"_id": "ECQGhuiSjWbspkHFu", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \t(File/Protected) in Trash \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "3S2Sgd3qx8L6B4YSZ", "msg": "The name \"File/Protected\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:05:19"}
{"_id": "ex4cuqu7nudZQ9sYp", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7mkNFz9F6dNDbLS93", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-22 18:32:25"}
{"_id": "egPiufJueDuDR7Akz", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f2,f3:File | f-> f2 in link and f->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,f':File | f->f' in link implies f not in Trash\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xRNYD2GNYKHytQME6", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-6-15 19:45:59"}
{"_id": "WfoCWygbgh5zwFjbA", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t: Trash | no t.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | \n}", "derivationOf": "AhKmgNcccANwXLdHW", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:51:58"}
{"_id": "S9nWHwMGhTtrQgLxy", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Trash & Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7nmwQ5n77a37PoEqi", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:39:07"}
{"_id": "Eto7sNBSor5ZuRT9a", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlet x = File.link & Trash | x.link in Trash \n}", "derivationOf": "CEMobPwZJ5qZYGeyx", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-30 18:39:24"}
{"_id": "4boDH3YpnbtbLLXNo", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\tlone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8vRxP7bPaotq9uE7z", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-11-14 01:06:11"}
{"_id": "J23RryBPXAHSTRJcT", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File - Protected) in Trash  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\tno Trash.File.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "Ryuoqt45hGhQtT8qr", "msg": "This cannot be a legal relational join where\nleft hand side is this/Trash (type = {this/File})\nright hand side is this/File (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:13:21"}
{"_id": "R6Hkh5tgny7gesY6s", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t: Trash | no t.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | \n}", "derivationOf": "YawEQm9ys9fsyvEAF", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:50:44"}
{"_id": "9McnooYZrmXBbKECX", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n    /* A file is potentially a link to other files. */\n  link : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (link.Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | (f in Trash) implies f.link in Trash  \n}", "derivationOf": "BwxNdXRLRSrtWD8po", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:28:51"}
{"_id": "kfgPcSGcaGHwCuadC", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 { some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9Z5KWogDAu7SLW9Zy", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 16:05:59"}
{"_id": "n2hFoQYvpPNcdKZ7T", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | all l : f.link | f in Trash implies l in Trash\n  \n}", "derivationOf": "dHcu455ot9XP6FRBa", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:21:51"}
{"_id": "wv2ynvCXWNPdFbTtg", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nTrash = File - Protected\n  inv4\n}\n\n/* A file links to at most one file. */\npred inv6 {\nlink lone \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HXxn4yWSeHRskikqe", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-9-10 18:02:50"}
{"_id": "yQoFNRyo3mMnooC2W", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some f.link implies no link.f\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8LaEupEFXytyX9dH7", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:35:56"}
{"_id": "YawEQm9ys9fsyvEAF", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies all f.^link in Trash\n}", "derivationOf": "PLySEr7a2gWDAppiK", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:48:27"}
{"_id": "pg9RSyGFwizsgmWwA", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | one f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QoED5FMqTsWsHyfAr", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-13 16:43:51"}
{"_id": "veP3JcbFB7pfJunJr", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-25 12:59:32"}
{"_id": "Htu2WyxFNcT5Gypms", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mjCN8Cn8JwjCM6eZR", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-13 16:39:35"}
{"_id": "L5FJKxvf6gwki5foX", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "fkPJ58jS2yWHzQMeE", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:59:48"}
{"_id": "NWh6J8kFpNnkszrB5", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PG8gY2bFn6BojSzR4", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:36:24"}
{"_id": "BwxNdXRLRSrtWD8po", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n    /* A file is potentially a link to other files. */\n  link : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (link.Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | (f in Trash) implies f.link in Trash  \n}", "derivationOf": "Jf5nYfdkBTDyApjHW", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:28:48"}
{"_id": "wGMbrjjLFhXi2X7ZP", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | no f.link in Trash & f in Trash\n}", "derivationOf": "e7GM8f6Q4M7faHZAe", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:27:55"}
{"_id": "o3NJzr8ZzfMPbdvK5", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FEbcNfuBffeQQoT9d", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File": {"x": 598.9921875, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-10-22 18:50:40"}
{"_id": "MnMbSNcZgKoHAGCWX", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n  \n  \n  \n  (not in Protected) & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wWqNSaqgf9TaoSRQM", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:48:54"}
{"_id": "X3NuF3HvZLojiAsZn", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9qkuHfMZDpKFmdH3W", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-18 09:42:14"}
{"_id": "DdgkZtRz9m5BGCw7s", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n  \tFile/Unprotected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "DsdNA8rhB5xdjgPkJ", "msg": "The name \"File/Unprotected\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:21:49"}
{"_id": "RCtoAqAJmm3TLsfYZ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:18:49"}
{"_id": "8hivxBXWckzeoNFoS", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { some File.link -> Trash implies some File -> Trash\n}", "derivationOf": "DwwttEsvzXoFTqSFQ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-14 08:31:19"}
{"_id": "tbfqktZQSoBYvErgA", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pgpymgtQAG2ZLtNMh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-14 00:11:57"}
{"_id": "Jdfxpswdzqmq8bKNN", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f1,f2 | disj [f1.link,f2.link]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MoAuDw7zi9qtnxb5T", "msg": "There are 1 possible tokens that can appear here:\n[", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:31:50"}
{"_id": "QjYAJCqg6aSx6Phgt", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  link.f  implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JHdYj6ihPP8q7973Q", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 22:57:02"}
{"_id": "b5m6gk7LY9yDgbKt9", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:Protected | no f & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link & File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4LHLvoyEmW4DQuCTF", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:55:24"}
{"_id": "GPjrsKfKKNFR4C5Dj", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-10 17:57:32"}
{"_id": "tHzYTzNar3EcC6fef", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  File = Trash \n  lone Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KerMJRb6gmZDXedEa", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:03:13"}
{"_id": "fHeN7bQurqe5ta7Zg", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  (no (some f:File| f->f in link )) and( link.~link in iden )\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dnELNW9ddowjzbaje", "msg": "This expression failed to be typechecked line 57, column 4, filename=/tmp/alloy_heredoc12859403599179931273.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:54:15"}
{"_id": "SjqqPsKeSYZg2XkEt", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f2,f3:File | {f-> f2 and f->f3 }implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iHFLQ3H9qWYem5Jdb", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-6-15 19:42:11"}
{"_id": "uxJu3P4wDQJTNFZfG", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CTeDeLnsnwBYJM8Aw", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 14:51:53"}
{"_id": "GibxhGc5S3LEH5gmM", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "s6LJspAdq9ryC3xfZ", "msg": "The name \"f\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:12:24"}
{"_id": "RHwSKJDSnEDwnatgb", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "gwmfPQiti4oqWhrrh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-18 17:50:47"}
{"_id": "iij7jqjbRrXECgRPS", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 { some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kfgPcSGcaGHwCuadC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 16:06:28"}
{"_id": "CwpTfgR5juRowZqYS", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "theBxT4QLoLNSn4Qq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 21:44:10"}
{"_id": "cqwoJS857tXppwMHB", "cmd_i": 3, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all Protected | not Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "mRoEnMLLBWyMLtAzM", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 20:05:47"}
{"_id": "5QE7LYa36MztayfwF", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6LA7Dz9kJC36v2R3G", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:28:38"}
{"_id": "DnaTm5QnPEiznDtZj", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TeeaeGXGvbqwptLNG", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 01:07:33"}
{"_id": "qX69oH4uHFMcw6BSj", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \t\n \tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ABR4JdJugSvfT67kn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:36:13"}
{"_id": "JjxyFAWbBS4NKyzuy", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "eqYZzBqdpEKBfMysj", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:23:58"}
{"_id": "G5iFps4at7r3G7RbD", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CAiA7r9yeKzWmKFB2", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:39:01"}
{"_id": "kHMdGHKog372TRC8Z", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t~Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "~ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-8 21:11:58"}
{"_id": "ytsgBW8J22C4EPvW8", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:24:16"}
{"_id": "CivrwF3RznopueY5h", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File - Protected | f in Trash \n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File.link + link.File | f not in Trash\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f.link in Trash \n}", "derivationOf": "yAtgta8oMFwNy9mPn", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-25 13:16:24"}
{"_id": "L3ugQp5JMwbAfX7Mb", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "x3HNHjWqoBWA8anhk", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:10:26"}
{"_id": "sL7s5ny5keQwAXDXu", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RkyDF7fHZzC6Kisbg", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 19:28:41"}
{"_id": "Sgn7rmfoWdKZMJmyg", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tProtected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "o8zC2zwJo9Hdw2H45", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:36:14"}
{"_id": "LsEChE9TC6GcTnWP7", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.^link in Trash \n}", "derivationOf": "cgogykstgAAckSz2C", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:38:39"}
{"_id": "DwwttEsvzXoFTqSFQ", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { some File.link -> Trash implies some File -> Trash\n}", "derivationOf": "WPHTi2gacJYHpKzBX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 08:31:07"}
{"_id": "qjNAzjnC37FKXv5Ty", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:40:31"}
{"_id": "2BE2s62JR9w3GHSrm", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7FJuksd5gmCb4HcaT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:04:29"}
{"_id": "aLsnx3zh7JSZkZg8C", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f = Protected :> Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dSFDrchvs77MBjTyv", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 22:48:21"}
{"_id": "5EDDesWaS6BD2eHvq", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "67GjLgzQ8JwbDFGn4", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 01:05:47"}
{"_id": "qH34RbgPfcqv7x9Nc", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n some f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RDvFP4QhNrZ5HzbN9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 18:19:39"}
{"_id": "rD6DpYA4mhP9Nc9eP", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | some f.link implies no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\t\n}", "derivationOf": "oFTeocWjCDot3iQLp", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:34:08"}
{"_id": "KNvWn4p9JsXyPquhk", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qrr7HRijHYGzaHYAA", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-11-14 00:11:02"}
{"_id": "Na2DZ8KyCJeytCvvD", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t : Trash | all link.t\n  \n}", "derivationOf": "aBGzBKX84cvQgFyNP", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:36:02"}
{"_id": "NaicC2vnvA3W3ctP2", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bYadJm74aH3XhjbxK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:44:48"}
{"_id": "oaLvyd9HSSx4QFA6d", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n    \n\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "N7r5bmzP3cquMsFou", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:24:57"}
{"_id": "xGXNEnr4uZxgFd7Jo", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink.~link in iden\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Fqreveo28JjgfQ4uX", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 20:48:17"}
{"_id": "bbPKKc9Ds5upvtvGe", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "K6axGDtLDfRoo4c8W", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:41:36"}
{"_id": "P2HPdezW6PBeZNCgq", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f2,f3:File | f-> f2 in link and f->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,f2:File | f->f2 in link implies f+f2 not in Trash\t\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in none->none\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall disj f,f2,f3:File | f->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ehJkr55EpgXbfB2yD", "msg": "Subset operator is redundant, because the right subexpression is always empty.\nLeft type = {this/File->this/File}\nRight type = {none->none}", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-6-15 19:48:41"}
{"_id": "WEM4YdNdshQScdohZ", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash <: File\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tno Protected = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jcsKSot8ThaDNdiyf", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:34:56"}
{"_id": "4LYY5F92ibaCA237q", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  all f : File, l : f.link | f in Trash implies l in Trash\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-13 03:11:29"}
{"_id": "sYKZYf7EPcgPazAXC", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n    /* A file is potentially a link to other files. */\n  link : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (link.Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | (f in Trash) implies f.link in Trash  \n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:28:24"}
{"_id": "ugx7qTMzrLPJ8jJCx", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EtNSdKcPjiNLPiKy2", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 20:17:52"}
{"_id": "PsXb9wqSQ62YxXQdq", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n  \n  \n  (File & no Protected)\n  \n  \n}\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "S7S4uc9LK7GvbJHdZ", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:51:05"}
{"_id": "qLHNHFLHy8TnSfx3w", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tno Protected&Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "37fFnkCZFuQYXRfA6", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-22 19:15:52"}
{"_id": "Do6DftNk3G2fEzzdo", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-12-2 12:00:36"}
{"_id": "fTPtQ5GR9cL5EDsTP", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tno link.Trash\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "P7JyYaSzB8CP8zEtq", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:28:09"}
{"_id": "mbZWjmdy8jbicRwbf", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlink.~link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gFCvqsbDzKvP8PPSv", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:27:32"}
{"_id": "6vwsu5sSPJH9DyWzt", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ydgFdC5fzW3kDw6wa", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:24:17"}
{"_id": "f7BBssbekhLjwAyhp", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | all l : f.link | f in Trash implies l in Trash\n  \n}", "derivationOf": "n2hFoQYvpPNcdKZ7T", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:21:56"}
{"_id": "N8gmfamWs9K7Xs6PE", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | f1.link -> f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PLMCTHedypqDcX8sR", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:24:05"}
{"_id": "kGu6qj9GS8dpcScWG", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6h6r2tvnj9wbwWgfC", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 01:05:50"}
{"_id": "xyZ9hSAP6Jt8rsfxJ", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  Protected implies no Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kCoyQqCqjNgv5bHcK", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:29:07"}
{"_id": "8HacrC8EjNACDh3p5", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7q7SAp7cJ4yF7NoX2", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 20:06:15"}
{"_id": "EvkzGZnDkLZ87X7wE", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Y9GxaHvq8FdLaR62f", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:58:24"}
{"_id": "K5KbvJMGBbbbuRF2Z", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t: File | some t.Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DZtYf49LHfJwKMm8s", "msg": "This cannot be a legal relational join where\nleft hand side is t (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 11:20:05"}
{"_id": "cuuoKN2C9ZEeNs2CR", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n   not Protected & File in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n  all f:File | lone f.link\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "y6dEJSYnt9X34KJ8n", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:42:36"}
{"_id": "8wTdQehDPE77vW725", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kTJbMK84CQaigPtjW", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:28:26"}
{"_id": "45vRkd3MTM7Nu5qy3", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xsA66TvZa4QNzZzBW", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:07:02"}
{"_id": "hXvyqwRYHc6jPPB3F", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CuMMnQTQs8NLihETZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:09:41"}
{"_id": "8jQJtPBxMjGhbw74a", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ejHupCREnBvBsNTPg", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 18:54:24"}
{"_id": "oLfhfuTBYqAR78Wj8", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f: File | \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "YmwDoYS4nkmEeQb52", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:35:54"}
{"_id": "dcLzpDnJD6futbESv", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n no Protected in Trash\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "FyjJJs4A7hMzx4yt3", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-13 17:54:49"}
{"_id": "SXtc4tD4r9GcCusMn", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile & no Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yhLGPzHCA2jGQktYN", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:30:53"}
{"_id": "nJTSTo7MSickMxjva", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "93iG9WRoXuHLQ78Rr", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:50:48"}
{"_id": "988hgAD5F9XQk2moX", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZPPNvJzcyCpF3Kbkp", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-18 17:48:03"}
{"_id": "ZPGWvYwcG9csY99DL", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Tr5kWBoWuBSAiGyR2", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:27:52"}
{"_id": "taAFxZauE399RGTLv", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6LivyA2P38D7kwZX3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-22 10:28:56"}
{"_id": "A5MLXxHmKciEtZ3LZ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  Trash = File\n  no Protected\n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pozSYJFgW2xG8Bvfa", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:47:29"}
{"_id": "hrmWsuj6R9pWoE44Y", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "sKGXtTS7S7B8WS53r", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:43:47"}
{"_id": "Pbvb8hQTN4884SzBv", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bAYX4LAnd8gdD5jWa", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:26:07"}
{"_id": "6ne3tbwr78S2mGNyE", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "e3rdTeXmivpZNeamT", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 18:22:24"}
{"_id": "EaFXvGDyn4yrKr2xg", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n  \n   \n\tall p : Protected | p not in Trash \n  \n  \n  \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "fFsFiGdvLf8D8ApDA", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:23:16"}
{"_id": "HZNYTFRWgeFzvDkN8", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "fZZnczmPK4wnWBoQ4", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-26 02:34:26"}
{"_id": "fZXLXFnjkXxJisAzo", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "psBKKn2TEyK5L2kTY", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:34:37"}
{"_id": "k8Y6JH5EJcrRz4sGu", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash in none \n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AsPiFicWCPuo6jvxz", "msg": "Subset operator is redundant, because the right subexpression is always empty.\nLeft type = {this/File}\nRight type = {none}", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-6-15 19:37:06"}
{"_id": "HjYTsSK7NH9W3DWhH", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tlink & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zMKu9XJgSAPfhDdNL", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:40:37"}
{"_id": "vPcgxGA8W6ookWZSr", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "Fq4dMqRscwCqLAHJ5", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 19:59:59"}
{"_id": "7W7jMBLe3kNyvkX93", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tsome Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LNhmS32znvzBZiqpe", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-13 16:36:55"}
{"_id": "fqoaM4Zr2PpbyfXQj", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "PZyfKrmYzk4NhtPEG", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:59:37"}
{"_id": "3obepoewZ4aaP5M5t", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n  \tno Trash & Protected\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f,g,h:File | f->g in link implies g->h not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\t\n}", "derivationOf": "7bKbCeQ7gTJxEvAQj", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:48:04"}
{"_id": "TEqaJ7geWiCR6xFBp", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  File = Protected\n  one Trash\n  \n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "d8sMkXoChYP7K7NmJ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:05:22"}
{"_id": "EfHps39Rm7K3CZkvS", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File - Protected) in Trash  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "cB8pKpmc3xwhTZaPS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:13:33"}
{"_id": "Teed5JaE8L3L3JqMZ", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all l1,l2:File.link | disj [l1,l2]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Po9rupvpB33J8v8gm", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 17:36:05"}
{"_id": "To9cBJbXfSTeuZuqq", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zx6rE4yvAXvd2HFNM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:22:18"}
{"_id": "XP84Pb7T7vKNgrZrj", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f: File | not f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f: File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no f: Protected | not f in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9ftjeuwMWxt4wGfNR", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-31 20:40:38"}
{"_id": "jM63wtkp9KMeTugPJ", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  all f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WC9ZatHir34diw6Hi", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 14:53:43"}
{"_id": "JP3iw2Zs5gCjGPPad", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File-Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gqYfyQfNDf4LxZRkT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 22:40:05"}
{"_id": "JR9J5CyBguyesrZ2E", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FeqroJzqCZHNxmCD9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 20:35:31"}
{"_id": "Xvv8FwxB2hsoYKvrP", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "QR8gCks7CtJzbALom", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:45:49"}
{"_id": "et3gv32hsuggAkuPR", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\t\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "F7zE6kfPBEjHktBg4", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File0": {"x": 222, "y": 199}, "File1": {"x": 444, "y": 199}, "File2": {"x": 666, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-11-1 17:14:14"}
{"_id": "tMsmEQiPQiWiuREQ9", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all f1,f2:File | not f1 in f1.link && not f2 in f2.link && not f1.link = f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DFKi4oxYmenAnhTmj", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 17:17:22"}
{"_id": "xyWGmKfiMqQrkYo2X", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link & Trash)\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "4qaw8QsDLBgDQMBqP", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:09:16"}
{"_id": "6P7Sob89hj54GfnbH", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile.link in Protected\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no (f.link).link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | (no f in Trash) & (f.link in Protected)\n}", "derivationOf": "ELwBMZjexZdRAeNKb", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-11-14 01:36:20"}
{"_id": "ca3vSuRJsS5A3Kj36", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone File.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \tall t:Trash | t.link in Trash\n}", "derivationOf": "nbxcdRbj86JuzmwRu", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-8 18:31:26"}
{"_id": "3j5EETNLRxTockoGG", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File-f | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "4n7xvQnLx2JtDFLio", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:31:36"}
{"_id": "mjCN8Cn8JwjCM6eZR", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3ne23FPNpv9gQa36N", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-13 16:38:39"}
{"_id": "DP9Wp5dJyfqB9NeBC", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hEaZ3oGqShXifbk3q", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:24:27"}
{"_id": "gRSsFZCFpFT6oqEJF", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cbMdLeCuzgqxWQDgF", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-12-2 12:00:53"}
{"_id": "85rvREtTpSXw5GLnh", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f . link\n}\n\n\npred inv7 {\n\tall f : Trash | no link . f\n}\n\n/* There are no links. */\npred inv8 {\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AoLGRPZLgbGxCi5Ag", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:36:31"}
{"_id": "8ZRkrm7RowXcDurBA", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YX2yaEA2XpfFNMYQx", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:41:53"}
{"_id": "xrtsksbam2a7EuCCh", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | t not in t.link \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YQBXBwsGHCWZ9LJW7", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 16:00:30"}
{"_id": "4yJz3wSyh4iRFPxYy", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  all f : File | some f in Trash\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uFCoDwaMazxExk9hi", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 19:06:10"}
{"_id": "FD74LtyqapLiKhW2n", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  File and not Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n  all f:File | lone f.link\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8rkN6eGCWMogdMJuz", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:43:52"}
{"_id": "pq5RoYGTynjFvC8kY", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   all t : Trash, f:File | no f.link & no t.link \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bz4KW2Aq3xxHzZQGM", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:15:00"}
{"_id": "99HCrvPJrk2b7DG9K", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some link.f implies no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | some link.f and f in Trash implies f.link in Trash\n}", "derivationOf": "kC4dE5GYX4eYRPxSm", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-13 16:52:29"}
{"_id": "EkP2G8yqBjoaco6Hy", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "K5j33WBJbA4RHSdBD", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 23:39:36"}
{"_id": "b8Mq6Lab2rWGtvcSi", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g: File | f->g in link implies no g.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g: File | f.link.g in Trash\n}", "derivationOf": "JvMFYSYutRSvwmZ7P", "msg": "This cannot be a legal relational join where\nleft hand side is f . (this/File <: link) (type = {this/File})\nright hand side is g (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:29:45"}
{"_id": "aiQ4mDurqhn2aDHkS", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(no Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZKJrmNF4Ct2gCmTCT", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:34:14"}
{"_id": "sQDJ49sxjD6FPvvLa", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some f.link implies no link.f\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "SZnQfj3YvaypTCaxN", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:53:23"}
{"_id": "g397vyDy3e3mFEy94", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n not (some f : Protected | f in Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oM839SJbhaS4PeAaf", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:03:34"}
{"_id": "GP9wNjL9AuEocwzDJ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tkxJvhPCNg9aMedp8", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 16:49:19"}
{"_id": "3v6bsH3WPNcWS4mK7", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no disj f,f':File |  f.link = f'.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fSWYTGrpBdkvQdbv5", "msg": "There are 1 possible tokens that can appear here:\n[", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:29:03"}
{"_id": "9REtspqcjqe5yYSzo", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | all f.link implies f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3Xp9zqhsL9Qf4je3N", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:32:32"}
{"_id": "YddyrANHM2ZAeEa7L", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | one link.f\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4ANtaHwzTcft2Y8JH", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-23 15:35:19"}
{"_id": "ExR4R2fuKiK6qbTXm", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   not Protected in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all l1: File.link |   all l2: File.link | l2 & l1 = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZWQJ8p3SftHcNWyvc", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 16:18:57"}
{"_id": "gzJj3RNDm7npw7e2Q", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink in Trash\n}", "derivationOf": "Qm2zn5QeiZj3NwY6Y", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:53:16"}
{"_id": "DoaKRhLdNKGGf2XE2", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { Trash.File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iL4rGJeXabmzRyRR9", "msg": "This cannot be a legal relational join where\nleft hand side is this/Trash (type = {this/File})\nright hand side is this/File (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-13 18:52:11"}
{"_id": "fG5S3Mn9eDtNfBqaT", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1,f2:File | f1.link & f2.link = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZB5HQjTfv4KJPThji", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 16:43:36"}
{"_id": "tgHJkkEttDFfKkmns", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t-link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "c3jXy7Eav27HS9DJt", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:47:40"}
{"_id": "FMXx7myQsXppKkSSp", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "F9hcx5x5nKWbcb5NS", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File0": {"x": 798.65625, "y": 199}, "File1": {"x": 399.328125, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-10-22 19:27:08"}
{"_id": "6tkd3NvuGiiwvGFpz", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File in Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oPFumHfppHysSykNc", "msg": "This expression failed to be typechecked line 40, column 2, filename=/tmp/alloy_heredoc2932895893101354630.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 20:15:37"}
{"_id": "LmtaKd7FH3aR4sPzB", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f:File | f.link not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7MWPFjXbiLjwLdKq3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-24 23:41:42"}
{"_id": "Mq8LkS4ui3s7ZxRHR", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFiles = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \t\n \tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Pb9Hd3SKx5QugBEdg", "msg": "The name \"Files\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 11:07:30"}
{"_id": "chSzWiikxsCpgp7Cs", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link :> Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  (Trash . link) implies (link . Trash)\n}", "derivationOf": "QMNM5PrZ6frBamSvP", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:26:54"}
{"_id": "ZXakWDNxBh93X9khX", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { link -> Trash implies File.link -> link.Trash\n\n}", "derivationOf": "r7jFSXMPhfrvRMvpm", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-13 19:08:07"}
{"_id": "RQWZ4aLBcGBJYBNqj", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tone File.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qqoRRZMLPCwj9eLFb", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-12 17:04:49"}
{"_id": "kD7JjmLmM4vWvhtQn", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | all l : f.link | f in Trash implies l in Trash\n  \n}", "derivationOf": "yg5jN8SM6tgKPFKRP", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:21:34"}
{"_id": "6HPmWzLBkysrN4xpv", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4PdHCZFfxbn3o2t3Z", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:24:18"}
{"_id": "hsHfcxLtEJ9zKo8ya", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  Protected not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vePtzdetGK5onGobk", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 23:28:23"}
{"_id": "cyhnxinYo4jHe3bCw", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "DsTP9pXpZ9soqxNvJ", "msg": "The name \"f\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:32:08"}
{"_id": "Ebj5YYdekYR2y4w84", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:19:09"}
{"_id": "KLxamu9jiK2gMsH8Z", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "beTTaFrnFShCYsAxt", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:27:59"}
{"_id": "zbhSt7au7zmqpZLNR", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TRCyeMS9rv5QAwhCz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:06:25"}
{"_id": "iH5ZsMymvixjcgxwf", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "The name \"trash\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-12 11:06:11"}
{"_id": "DQ7suXCzvMkFd3gsg", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash . link in Trash\n}", "derivationOf": "ZYzMFCnef7CHpPdSZ", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File": {"x": 598.9921875, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-10-3 10:27:22"}
{"_id": "LqdEwAnXR45xj4zmJ", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no (f.link in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "yWgK26MHk9X9R3gt7", "msg": "This expression failed to be typechecked line 60, column 15, filename=/tmp/alloy_heredoc1147510416741071935.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:03:04"}
{"_id": "D2kT5u8u4Xus5QThM", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fG7baB8cN8EygvRTv", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-30 18:07:10"}
{"_id": "bFnPH6rCmEsTeh8co", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6idP7GpEZW9XNT6Jq", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-4 16:09:02"}
{"_id": "eqYZzBqdpEKBfMysj", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "Y7Kp99G5gDS5G2wPB", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:22:47"}
{"_id": "aXHmh9Je5dPqyriJb", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   all t : Trash | no t.link \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "u7LSsSEgB4Msu9H7h", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 16:16:36"}
{"_id": "YYCWdbp7o68bd3cvq", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "c7x9HPoGCGHpaj5LR", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:22:31"}
{"_id": "bHidF32stAJ4jAFtb", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n\t-link .link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MyFv2NrvFmDtA8LBQ", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:46:43"}
{"_id": "zhbjAootmzLPQRDQm", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  link in File lone -> File\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-10 18:13:56"}
{"_id": "xcsDpkW5tDMBZTtBZ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 21:42:38"}
{"_id": "8LZ65ZpsipwwmBx3b", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "PzW3wamAbTFEuAG8i", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-18 20:47:48"}
{"_id": "wz5kxzyBdkghHnM6D", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link & Trash)\n   \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | f.link\n  f=Trash&link=Trash\n  \n}", "derivationOf": "tqyKELhyf95TvR9zD", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:23:33"}
{"_id": "Fqreveo28JjgfQ4uX", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pJ5wFpiED4ZNtp8uS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 20:47:22"}
{"_id": "c6qkfFuHjr5CgJtc3", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x : Trash, y : File | x->y in link implies y in Trash\n\tFile.link.Trash\n}", "derivationOf": "vCTqjAgdQRghKvrzG", "msg": "This cannot be a legal relational join where\nleft hand side is this/File . (this/File <: link) (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 11:31:51"}
{"_id": "hSES8KHcRB7JTfCjF", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  no Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sYygG2zGqGmug4vMb", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 19:33:52"}
{"_id": "6bwuLGwZ6au3hR5Pb", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1,f2,f3 : File | f1->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8xiTy7sCAuyKAKa5z", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 10:52:14"}
{"_id": "bYadJm74aH3XhjbxK", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g : File | f->g in link & no Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fwENoRtixYf5bL7FJ", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:43:43"}
{"_id": "t6ruFToPTC6fjSK8y", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xqEMXb7jLrzxhGfSJ", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-11-10 15:09:07"}
{"_id": "mmsPiN9WD6e2Lpe7z", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  Trash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | some f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "opYpC472ZgRda4czm", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 20:18:18"}
{"_id": "bFtdZ2a5nhTySiZNw", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \nall f:File |  f.link implies f.(link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nXAQRMvoZ388k7oqT", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 23:48:53"}
{"_id": "HeZvCFJYFiqD4vRwQ", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { some File.link -> Trash implies some File -> Trash\n}", "derivationOf": "akGgJ7PYRKwgnrJKM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 08:31:50"}
{"_id": "LJaWFJQEtZbZnsdKQ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fT5PYvbethbE3xTsJ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 15:00:10"}
{"_id": "4PomHjbWGY3fqJTDF", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qnMdB7zaMGnrDv8XX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-13 19:06:32"}
{"_id": "hR37wEuHvM7LXG9cx", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f.Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Dhcfn3htkWHkSyZ77", "msg": "This cannot be a legal relational join where\nleft hand side is f (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:13:38"}
{"_id": "FYwWyBKX6B3RpdLKh", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ri5p9oALpS2H7fnrQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:23:24"}
{"_id": "uJsNafF7BeAcLGNFp", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n\npred inv7 {\n\tall f : Trash | no link.f\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9pmpPkiqhrM5LfzzZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:25:46"}
{"_id": "SeGtLbFwNREEpQuh7", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nno Protected & Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\nno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n Trash.link in Trash\n}", "derivationOf": "MCQmpCaxu6XPpmMyL", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-10 18:11:33"}
{"_id": "8qhEAtmoWfNgjYBeQ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 16:53:16"}
{"_id": "gjujaNfPWTsSigMAx", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n-link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "a934DuR3b4j9Rx9sz", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:48:45"}
{"_id": "9Nej8PyRxjEGZwQR5", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Protected -> Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4dQTfKjsJL37ZFa33", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:46:18"}
{"_id": "nHDcexxBqmCWckw3J", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link && Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "F5xf6SupGiFWLdeEj", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-9-26 02:33:00"}
{"_id": "nH5QbmohDMrXp88Ja", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nAMN2GehTnJc9Zyuq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 16:57:21"}
{"_id": "c7x9HPoGCGHpaj5LR", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "g3wCGn3rbCgto8stS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:22:16"}
{"_id": "hCLw3ZTsY8maCda7b", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  link.~link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NT6G8zpsv5DbCXWoH", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:28:24"}
{"_id": "W3Dnyn3KQaZTk8WoD", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tlink.~link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RGXG9ZgrFGeHih5Bt", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 18:43:50"}
{"_id": "FC6N2pFzTBWyfyARv", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File \\ Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "To9cBJbXfSTeuZuqq", "msg": "Syntax error at the \\ character. HEX: \\u5c)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:22:35"}
{"_id": "kLP2bESFWcgFTAzRr", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bMjdsK5rqDegdeJM3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:32:08"}
{"_id": "bMFL56dnt5P8b6g8z", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n not some f : Protected | f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  all f: File | no f.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f: File | f not in Protected and f.link in Trash implies f in Trash\n\n}", "derivationOf": "gTJMGGD3GwHQBzdAb", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:17:46"}
{"_id": "CHxBCEqjBFjLSYdEu", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GPjrsKfKKNFR4C5Dj", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-10 17:57:57"}
{"_id": "qaWwgQATefFJdmzTY", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1: File | all f2: File | f1.link & f2.link = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QnBeouxyGtfb3KPm4", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-18 12:32:39"}
{"_id": "vd9czbjrJSTxsctQ7", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n   \n\t\n  all f,f1,f2 : File | f->f1 + f->f2 in link implies f1=f2\n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n   \n\n\n  \n  \n  \n no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "LDsh3QputAuFYAwk7", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:37:16"}
{"_id": "oM839SJbhaS4PeAaf", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qrdYHi2KJ3mzcA9no", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:02:19"}
{"_id": "dkfRvWm7vMJnbzBCZ", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "idpebA6o2mtBRFY69", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-4 15:03:06"}
{"_id": "sLi59mXz92M2aWBwW", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9Ra3pM3GJ9bhPJ3Mm", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 16:54:18"}
{"_id": "YWLAkY22CQLDe3tdX", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tnot Protected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2ASyMgFgRwxQx3HoX", "msg": "This expression failed to be typechecked line 52, column 2, filename=/tmp/alloy_heredoc6302625831689337540.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:36:22"}
{"_id": "7Yi6AjAjowbh54HXK", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mMMgqte7n7Gbxc4fr", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:23:56"}
{"_id": "z9D6n94hoQw39zgKQ", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash & link.link\n}", "derivationOf": "jy4Fdpd88f2TLmpqB", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:01:22"}
{"_id": "MEyGYMANRDbYqee93", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some f.link implies no link.f\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f.link in Trash implies link.f in Trash\n}", "derivationOf": "yQoFNRyo3mMnooC2W", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:37:07"}
{"_id": "yA2TvZZ8kJx3Z9uJh", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.File & File.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l,f : File | l->f in link and l in Trash implies f in Trash\n}", "derivationOf": "BjLqvEyfHTMnhZQN2", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:57:37"}
{"_id": "hShNiTYSssB7BZsSK", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all l: File.link | l in Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5kzGiAQDAzavocQP5", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {none}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:18:14"}
{"_id": "82Cgnvtnu2CqGAfHr", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "b5Sx9Zitr7PQrRf7K", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 20:53:59"}
{"_id": "yLsDDYw76vZM7vjSP", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l,f : File | l->f in link and l in Trash implies f in Trash\n}", "derivationOf": "abm2Hq67Cb7wh99gR", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:58:45"}
{"_id": "pyCGdEwMteSJLdmCY", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n  \tno Trash & Protected\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZmqeiouchR2Dqt5MB", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:45:12"}
{"_id": "EyryjmQ5cA6APz64m", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File \\ Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2Km3Zi7QKRDqS7C9d", "msg": "Syntax error at the \\ character. HEX: \\u5c)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:33:43"}
{"_id": "542jmgpYSpu2nRWdn", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n   \n\t\n  all f,f1,f2 : File | f->f1 + f->f2 in link implies f1=f2\n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n   \n\t\n  all f : File | all f1 : f.link | f1 not in Trash\n  \n  \n   no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "vd9czbjrJSTxsctQ7", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:38:30"}
{"_id": "ZyQ2pdenutZeRwhTw", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    link.~link in id\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xky9qfpXo3F8jh2r8", "msg": "The name \"id\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-30 18:20:57"}
{"_id": "YE6Lu5nQkQPrz4jiP", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "vnZBgg65ZqPXqvfB3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 20:02:19"}
{"_id": "az6poYTegGbtRXacM", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  link.File not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NHoCHcXBzeyTceCY6", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:29:47"}
{"_id": "kLg2t5Z3Y9rzghy8T", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all Trash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pKTG6Q8skgHjnWZNB", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:12:08"}
{"_id": "566Kqmk9X9re9Bve5", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n   \n\t\n  all f,f1,f2 : File | f->f1 + f->f2 in link implies f1=f2\n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n   \n   all f : File | all f1 : f.link | f1 not in Trash\n  \n  \n   no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  \n  \n  all f : File | all f1 : f.link | no f1\n    \n  \n  \n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n   \n\t\n  all f : File | all f1 : f.link | no f1.link\n  \n  \n  \n   no File.link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "JCvhPTB7XwGgomfGo", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:43:01"}
{"_id": "4HbDjSHrLBv5rcmga", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | f.link in Trash => f in Trash\n}", "derivationOf": "2j87M3SoZLmxfEkgf", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-15 00:51:34"}
{"_id": "znsqefAzYBgrWqJk4", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n   \n\t\n  all f,f1,f2 : File | f->f1 + f->f2 in link implies f1=f2\n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "ytD6TpirfHeHgzwG2", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:28:57"}
{"_id": "2jAzBtNELLSMr3Z5x", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-21 14:45:49"}
{"_id": "7PQSfJvGFqa5t4P4c", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n\t File in Trash\n  \t no Protected\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NTwrfu6D3AX3RJ4xy", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:28:38"}
{"_id": "KSJrziH7hdXbrpYvb", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  File in Trash implies File.link in Trash\n\n}", "derivationOf": "yTANiZcGqK2kEgdfN", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-12 17:20:33"}
{"_id": "CfbT4YypGxjMuw7xd", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n  \n  \n   (File \\ Protected) & Trash\n  \n  \n}\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HanJ5BuvZoC2Mx5D2", "msg": "Syntax error at the \\ character. HEX: \\u5c)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:52:35"}
{"_id": "xsjtsEGvPCYbomn8c", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "p3RWMqXpgA5eaijHJ", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2021-1-8 02:32:27"}
{"_id": "9EXCgzqcJ98zJNssE", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "y5bFsqmnCDAqeSeS4", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 21:47:56"}
{"_id": "BcogDrZThReDtcRit", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tProtected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Sgn7rmfoWdKZMJmyg", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:36:24"}
{"_id": "775ZTaPRnihbYHKY9", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n  \n  \n   (File not in Protected) & Trash\n  \n  \n}\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XBPsCMSwGG88QLPrf", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:53:31"}
{"_id": "CHyoJacYZ9yEuiAsa", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Protected - Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JsputzNBCNLoHD5Mu", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:38:06"}
{"_id": "sTBgqa72bKpXjF9ay", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tTrash = Protected - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yCKmJntD4DcBBhkNr", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:01:23"}
{"_id": "St9fgswCkHWGxMkTd", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f, t: File | no link.f.link.t\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NHxWTYPLePaWKjK3p", "msg": "This cannot be a legal relational join where\nleft hand side is (this/File <: link) . f . (this/File <: link) (type = {this/File})\nright hand side is t (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:29:03"}
{"_id": "khp9gnvGXHFg8QhpJ", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bbPKKc9Ds5upvtvGe", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:41:49"}
{"_id": "xv7CXaCi6zWKSRwZG", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f->link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DoNZDt9F36hcJSLxo", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}]}, "nodePositions": {"File": {"x": 598.328125, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-10-22 10:42:11"}
{"_id": "QysErjRSybJSWpFYr", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no(Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\tFile - Protected in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \t\n\tlone link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "s2uEgtvujNMprPkyQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 00:10:28"}
{"_id": "Az7qp9K7eFj484xkq", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  lone Link.Link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3ikrRiPgv8XxabRim", "msg": "The name \"Link\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-24 23:35:41"}
{"_id": "KihLy8zJdzuYEcXpc", "cmd_i": 0, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}\n\n\n\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "\"File\" is already the name of a sig/parameter in this module.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:54:53"}
{"_id": "GEbMxs3B4hvEZYCmb", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "WpeA9D568yQiXMQ69", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-10 15:11:28"}
{"_id": "7hjKH6B9ybmDJimfS", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash = {}\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/File}\nRight type = {PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:29:50"}
{"_id": "S4nBduGxveqrtwxeN", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f,f': File | f.link = f'.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KnW62uWM3wM6uZyuZ", "msg": "There are 1 possible tokens that can appear here:\n[", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:29:44"}
{"_id": "ZuJAcsa92Su6nfw5R", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  File.link implies not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "wGSjdAdX32jK63yWQ", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:09:17"}
{"_id": "MvgPrkwPWYWB469hK", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n    \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n  \t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.^link in Trash \n}", "derivationOf": "hDksmL6PWrqfopdN4", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:42:33"}
{"_id": "HAvW7yYx5EexCfsuw", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tlink in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "okCHu87M3y5X4oWrF", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:20:51"}
{"_id": "ujxXkBtSr9P2HDhtL", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n\tno Trash & Protected\n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DLYXFjPBY3k6asQPY", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:35:46"}
{"_id": "Ccf6Gd7yCzca4Lbzu", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f->link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | f->link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nRERvRHfQxmwz4Aw7", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-22 10:34:54"}
{"_id": "tGm7m8nZqFQJBo4ds", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tnot Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FcY63xP8xbSESSds9", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:26:25"}
{"_id": "6JY9mTDy2eJXxvu3w", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { File.link -> Trash implies File -> Trash\n}", "derivationOf": "oH2aAdDTdsn2K9o2y", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-14 08:29:32"}
{"_id": "DR2uGEpJDqL3LZ9fY", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fQEERvXZhN5XJccsM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 11:46:34"}
{"_id": "ZKJrmNF4Ct2gCmTCT", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File & no Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EyryjmQ5cA6APz64m", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:33:55"}
{"_id": "HXxn4yWSeHRskikqe", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nTrash = File - Protected\n  no Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Rbe7XLyeKmo4G3u4k", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-10 18:02:07"}
{"_id": "5aWkrgDP9AvZ6kHd5", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-22 14:41:24"}
{"_id": "iLDG4CFPyLrPckbQm", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n  all f:File | f not in Protected implies f in Trash\n  \n   no Protected = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n  all f:File | lone f.link\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Tpyjq6AqsmfRsWZFW", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:41:34"}
{"_id": "4HsEm5BbeTzyexgsy", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8PHkAYNgAFbteHDgi", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 12:16:23"}
{"_id": "a6jizoGd3NtTa79hZ", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f:Protected | f no Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TunkD7T7vCDXBcmg8", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:31:22"}
{"_id": "vWyTn6x2u6ums5p9P", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wvYBLk42roaqGMZio", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:12:43"}
{"_id": "xZPWeNfm8p4JDRNxT", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  lone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yhpoGeFYmzpvixKmS", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 19:37:36"}
{"_id": "bMjdsK5rqDegdeJM3", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wR7nTuB7t4L3s6yYt", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 13:32:04"}
{"_id": "iBEyRhde27SsN4uE9", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "f5w7fzBJHRnYK6psa", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:09:12"}
{"_id": "wR7nTuB7t4L3s6yYt", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FJ3jqBiNmJrXBwEwx", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:28:32"}
{"_id": "Tc775yNevPJxDFv74", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hjjmhQcdGSRrsZZG8", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:14:43"}
{"_id": "iHFLQ3H9qWYem5Jdb", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f2,f3:File | f-> f2 and f->f3 implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KK3BHyGgtYabn7MiC", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-6-15 19:41:54"}
{"_id": "dMmbPkFt87w2NYTNy", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 20:49:23"}
{"_id": "EJhGFWxNk9i7tAFmR", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t(File \\ Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dvfaNP24wtnHWuZtv", "msg": "Syntax error at the \\ character. HEX: \\u5c)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:35:22"}
{"_id": "ehhsps4LkBrnpC5Qi", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t : File  | some t.link\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { all t: Protected | t not in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f: File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link.Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TSxuux8P9nodKgrnT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 12:22:17"}
{"_id": "q5ysPenQovhpYPssh", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f->link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Fz7gEt6EpGZXtzuhQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-28 09:24:36"}
{"_id": "uzCTydy8pfhAduxgn", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  some f : File | f in Trash\n  \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RstwXn4W5GpvXeb3n", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 21:13:30"}
{"_id": "LBcR869DwGaGCwcZr", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "2LC3PpcBQ5vob7sgM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-22 19:11:03"}
{"_id": "wg5zcfsB2po2ZuTMN", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash & (Trash.link in Trash)\n}", "derivationOf": "92TKAn4SAeXghmJbh", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:03:24"}
{"_id": "fWaoLEkXpfzuqwWsW", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File \n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected  in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no File.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link.link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n  Trash.link in Trash\n}", "derivationOf": "XMWKdTkhbHux7fNJ4", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 08:47:15"}
{"_id": "HjWMoWesWLz3DZnm2", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no(Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\tFile - Protected in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \t\n\tlone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XmtAAdpaNh2GLLjTC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 00:06:36"}
{"_id": "dxBk7DyJTt4fYc96K", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GEyGyHW85zxLo7cWE", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-6-15 19:40:08"}
{"_id": "RGeppaD2cL9WFsPyg", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "Y4eLPHvTg8wdT7Rq6", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:09:31"}
{"_id": "rxMC4MaysuJ9oSSjB", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "khp9gnvGXHFg8QhpJ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:42:24"}
{"_id": "eKbBk76bTGpyLC8ve", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "HZNYTFRWgeFzvDkN8", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-26 02:34:29"}
{"_id": "TMWKiMrimQEDQBgHN", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  lone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HLz3XYNkPkNF2hpsZ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:23:48"}
{"_id": "bAYX4LAnd8gdD5jWa", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "63yXvxpdKA8Lzng3x", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:25:54"}
{"_id": "4Ks6zQDYDsgatMf7c", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eigSgPnWPoGqZZKDd", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 19:23:11"}
{"_id": "H4NqZMB3p7z3SqzTu", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "H8hw4swC3W8ef2vWh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:38:05"}
{"_id": "ggmTNKjL85t99mhTa", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  ( some x:f.link | x not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.^link in Trash\n  \t\n}", "derivationOf": "BheKWt6eBT73Np7Ju", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-30 00:07:55"}
{"_id": "2DW3APPvvTvZsEjGH", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9x8YQusnMEpJ6fpRq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:27:59"}
{"_id": "ePCm9R3cow2xgyS47", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MqEkDykr4L4HNrm6t", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:24:21"}
{"_id": "tw5R2otsejtcBP6kD", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | (Trash.link.f) implies (f in Trash)\n}", "derivationOf": "BBRcSKQ7zb3hsz7z8", "msg": "This cannot be a legal relational join where\nleft hand side is this/Trash . (this/File <: link) (type = {this/File})\nright hand side is f (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 19:59:28"}
{"_id": "9Z5KWogDAu7SLW9Zy", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 { some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZbJc695s5k4nE6Kp3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 16:02:44"}
{"_id": "DLZ24dk9kvQTDtvLZ", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some File in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jB4coRSnm5oNSuDgY", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 15:05:08"}
{"_id": "xKT7qx2tLytQrirwD", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "25HsTiowHKqgqMRWx", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:23:29"}
{"_id": "qrdYHi2KJ3mzcA9no", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yfw59zmH3oC6u2fsQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:01:57"}
{"_id": "DLYXFjPBY3k6asQPY", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n\tFile = Trash + Protected\n  \tno Protected\n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gdfCZD2oH6Hw96qzn", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:35:33"}
{"_id": "WNXmTH7T6crvZhZk6", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qGfKgEawDQzN6NLv7", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 20:35:56"}
{"_id": "XrFxTYoTvEDaS4JNz", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mKWAtkJEzgiQySfZv", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 20:02:14"}
{"_id": "qzMnxh7yf3YpX4wAY", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link.File.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NbDwEWfYAX3yaBrZr", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:20:52"}
{"_id": "Ngtkcx4u6WnGCEH8h", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | no f.link in Trash & f in Trash\n}", "derivationOf": "HzT4D7wjwJ7t92rWk", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:29:13"}
{"_id": "iBxRn3ZtxbWwsivTa", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jogGhNDpMriYHb7rt", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:24:18"}
{"_id": "PzW3wamAbTFEuAG8i", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "6h9Ha4yiiWATSzvRm", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-18 20:47:39"}
{"_id": "eCEzGt2sENKMGnMZ6", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink.link in iden\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "MBrPKE2MpbfexQFky", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:20:36"}
{"_id": "3zuq9g6QsLYpxy2zJ", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "3Wo5frKp5NQNbKJm2", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:59:42"}
{"_id": "f5nHKCtvDwXYwG97a", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden\n}\n\n\npred inv7 {\n\tno link . Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f . link in Trash\n}", "derivationOf": "yrr33zjj2aMm36XWw", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:54:20"}
{"_id": "xZrxfC6bGt7STn94A", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all file: File | file.^link = file.*link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RJ8CMZqka7KbDMa2n", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-18 12:26:08"}
{"_id": "EsuGveXHoSZRFGX69", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cC22swHzYRK2sXrvT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 21:05:52"}
{"_id": "Bogqay8RSjMv76bkz", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f1,f2:File | f1.^link = none | f2.^link=none | f1.link & f2.link = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Z24SaRr6nnPJsBKME", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:38:52"}
{"_id": "p34QNBhALpeuNQKws", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1 : File | not in f1.^link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qZN9DJ9EQ75i4ZW5d", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:15:19"}
{"_id": "Kn93bZAWpJNvyEjLe", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "iomcKcsi232p3fWgj", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:22:18"}
{"_id": "W7GAkqaNd2M7veKbG", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno Trash & File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aT5LQnNNc72Dvy9ju", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:25:48"}
{"_id": "ud8GftKA94BfzmPYc", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   \n   all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  some f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "kFauZFAmuNvDs4PvY", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:40:19"}
{"_id": "Ra95XfaAZgnd7EnFL", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f: File | not f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f: File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no f: Protected | not f in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XP84Pb7T7vKNgrZrj", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-31 20:40:46"}
{"_id": "ZCrSENrNMay7PxXyB", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    all f:File | some f1,f2:File | (f->f1 in link and f->f2 in link) implies f1=f2 or f=f1 or f=f2 \n}\n\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link implies f1 not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "tYQ2GZKQncq5Mydrp", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:43:47"}
{"_id": "C22ZLJJeiKnjRQiHp", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t-link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AGm4ue8aZMFqR5Zdr", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:46:27"}
{"_id": "JNhShbJ7Eo5r84Y8b", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2, f3 : File | f1.link - f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cgiW4SRhQ8ZNBHFuN", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:18:23"}
{"_id": "LZHANam9x78jFZLY9", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n    \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n  \t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.^link in Trash \n}", "derivationOf": "xKutot8pxBk5FqppK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:42:29"}
{"_id": "Fg96isEow8ML4WTXR", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  all Trash & Protected\n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nE2vov45MLmKggfKi", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:37:44"}
{"_id": "uMt6wTtvWSHtbod92", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  \n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8NECsiMKR5ZMZYip5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:26:14"}
{"_id": "KKjvtXJYm49LPthRp", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\tFile.link in Protected\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5znrijk4dpXHmjao5", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-11-14 01:22:23"}
{"_id": "bCntn2h9x93X2nBgF", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  lone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yFoSiwHSKJvgWp9Nt", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:25:52"}
{"_id": "2tuyrJHPeh2s5sxBR", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link -> f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "N8gmfamWs9K7Xs6PE", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:24:09"}
{"_id": "PZJsMNFcwnJkqXytF", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  lone ~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DYYLsezAbFvRcoEZ2", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:32:08"}
{"_id": "B5LAEkWhDFrrZ9kYZ", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t : Trash | some link.t\n  \n}", "derivationOf": "Na2DZ8KyCJeytCvvD", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 16:36:06"}
{"_id": "dHcu455ot9XP6FRBa", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | all l : f.link | f in Trash implies l in Trash\n  \n}", "derivationOf": "bjSYqi2QTjokF5tX5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:21:45"}
{"_id": "jY7Qwi97bTaAoo5MD", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tFile = Protected\n  \tno Trash\n}\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fNqZdASvdgTYji2A3", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 22:31:27"}
{"_id": "67GjLgzQ8JwbDFGn4", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DdixsZkGxaFmHEbPz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 01:05:30"}
{"_id": "R4Pfpt8Wvp5wKNLKF", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    all f:File | some f1,f2:File-f | f->f1 in link and f->f2 in link implies f1=f2\n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash   \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "cN6vpKJECvSssiFsD", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:34:40"}
{"_id": "zXZtWphPXYZ45h2Nb", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xEQQYYeEmLeCG5NQn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:10:06"}
{"_id": "Eyx6EMPm8vSsjFKDi", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile & Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ShSnnfhnsMkLTKCmf", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:20:53"}
{"_id": "SHcMLZsFhPy6A4yMP", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tsi Trash - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Y6aj6oK43H4s7np6z", "msg": "The name \"si\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:57:40"}
{"_id": "Pv2EkzSvy9ZfvyXEX", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (link.Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "uJffDxYuNd8cLLJcx", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 20:47:01"}
{"_id": "7jEJFsQ7bn4Z6375G", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | no (f.link & f) in Trash\n}", "derivationOf": "hyd5Sk2qM8dACeh5L", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:32:36"}
{"_id": "3qu3zQatXj4EJwPaC", "cmd_i": 2, "code": "open util/ordering[Step]\n\nsig Stack {}\n\nsig Step {\n\tcharterer: Stack,\n\tviewer: Stack,\n\twebpage: Webpage,\n\taction: lone Action\n} {\n\tviewer = charterer\n}\n\nenum Webpage { overview, form, details_page }\nenum Action { click_create, provide_details }\n\nfact initial_state {\n\tfirst.webpage = overview\n}\n\nfact final_state {\n\tlast.webpage = details_page\n}\n\nfact create_voyage {\n\t\n\tfirst.action = click_create\n\t\n\tall s: Step {\n\t\tlet s2 = s.next {\t\t\n\t\t\t\n\t\t\ts.webpage = overview and s.action = click_create => \n\t\t\t\ts2.webpage = form and s2.action = provide_details\n\t\n\t\t\t\n\t\t\ts.webpage = form and s.action = provide_details =>\n\t\t\t\ts2.webpage = form and s2.action = click_create\n\t\n\t\t\t\n\t\t\ts.webpage = form and s.action = click_create =>\n\t\t\t\ts2.action = none and s2.webpage = details_page\n\t\t}\n\t}\n}\n\nfact authorization {\n\tall disj s, s2: Step |\n\t\ts.charterer = s2.charterer\n}\n\nassert visibility {\n\tno s: Step | s.viewer != first.viewer\n}\n\nassert lastPage {\n\tlast.webpage = details_page\n}\n\ncheck visibility for 10 but 5 Stack\nrun{}  for 4 but exactly 5 Stack", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "The name \"Trash\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-4-7 22:11:49"}
{"_id": "SZmRxrfPYwEdaEFJc", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "ekjTgLRMkiRxqniRR", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:43:30"}
{"_id": "fJYbhDuXjjEWscvaa", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "86iup2qwYzBDMe9Nv", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:25:11"}
{"_id": "vdZPSTTYbuPzNZacH", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "boWts2JMa2eXpWReN", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:07:18"}
{"_id": "b5Sx9Zitr7PQrRf7K", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f.Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dMmbPkFt87w2NYTNy", "msg": "This cannot be a legal relational join where\nleft hand side is f (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-2 20:53:33"}
{"_id": "Z24SaRr6nnPJsBKME", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f1,f2:File | f1.link & f2.link = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "s5jdE8YmfenPpbTcm", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 16:38:09"}
{"_id": "wGSjdAdX32jK63yWQ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  File.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "XLQobykgxoMfPDQrG", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:08:52"}
{"_id": "wydLYuLGBYNa3RFNN", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash in File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZgmnFHPJYGqK6LXYu", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 20:19:50"}
{"_id": "sxBPk42wkff265gSy", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   not Protected in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all l1: File.link |   all l2: File.link | l2 & l1 = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eSEKw7tpumtPDZHNS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 16:17:28"}
{"_id": "xPwRnxMi9HJ9JuTwh", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all w, f : File | (((w->f) in link) and (w in Trash)) implies f in Trash \n}", "derivationOf": "tcDbL3RgQauY6fJh4", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:53:02"}
{"_id": "yGtDQnsps7st9tguS", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6vkfiwnbWXNB3baEK", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:17:17"}
{"_id": "PbNxtkHtg823myx5q", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Protected <: Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Mx49synujJcTk5WGA", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:53:18"}
{"_id": "6h6r2tvnj9wbwWgfC", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 01:05:09"}
{"_id": "53SYmEKcazKDZ2bH5", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1 -> f2 : link | f1 not in Trash\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f.link in Trash \n}", "derivationOf": "TtLuGfTEbGhtwWa79", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-12-25 13:07:06"}
{"_id": "sZhFztPKce8Fd4Mok", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n  \n}", "derivationOf": "B8gMRak7XRbcQAws5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:32:09"}
{"_id": "gwmfPQiti4oqWhrrh", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "FoeqH9w6npzJqmSnb", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-18 17:50:13"}
{"_id": "o9foG92AMMmWcra86", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xrtsksbam2a7EuCCh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 16:01:08"}
{"_id": "NYZHiBXJFrLNhJRHJ", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  Trash = no Protected\n  File = Trash\n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rD4HuDkuMxHjxMigy", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:50:19"}
{"_id": "kZgv2ifCzDRBZpzus", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tno Protected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "osecxsmdocg4x3tqn", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:14:03"}
{"_id": "9WNLJ3oj9jELw5t5R", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome  Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DP9Wp5dJyfqB9NeBC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:25:03"}
{"_id": "MxTz4sp3nTMfebr9q", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected - Trash\n}\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7JtfS8NQK7nWEaG4r", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 22:42:10"}
{"_id": "vSBjR7Z2LpYYs8Pq3", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  File = Trash + Protected\n  no Trash & Protected\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bMjebQ3GdqQxCZuT6", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 14:59:18"}
{"_id": "DdRLs64SaA7AzcdTb", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall l:link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pd8tZ8eHNRbcNrpbw", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-27 21:12:18"}
{"_id": "K5SypiATSJbpdfCam", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   File = link\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vCAeQuG3HF5ZwTayE", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:01:50"}
{"_id": "B2YC9YKy355Hm2xqx", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link.link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:07:16"}
{"_id": "YYEZnsRZqhYmvNfBy", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t : Trash, f : File | no f.link.t \n  \n}", "derivationOf": "fqaYcfwNQSsjrhofS", "msg": "This cannot be a legal relational join where\nleft hand side is f . (this/File <: link) (type = {this/File})\nright hand side is t (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:44:01"}
{"_id": "tdfaQtnwcxBB6PXyf", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \tTrash.link in Trash\n}", "derivationOf": "KWomcbFERuXc8jXKP", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:36:05"}
{"_id": "tP4Kzp4gL5cxX2NMW", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t(link . ~link) in (~link . link)\n}\n\n\npred inv7 {\n\tall f : Trash | no link . f\n}\n\n/* There are no links. */\npred inv8 {\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f . link in Trash\n}", "derivationOf": "ReXu83dJzk2vJPePK", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:44:39"}
{"_id": "XWrWBnqALmGWbGDWF", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wX2mD3rpt3joyfmMJ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:30:13"}
{"_id": "zJpp6TJZAJ3SJef8D", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all disj f1,f2:File | disj[f1,f1.link] and disj[f2,f2.link] | f1.link & f2.link = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FXcq3nkL6S5Atgh47", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 17:06:16"}
{"_id": "NFGZsN2FnCjwhwS2b", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f: File | not f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f: File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no f: Protected | not f in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Ra95XfaAZgnd7EnFL", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-31 20:40:50"}
{"_id": "ZWygfZ7bxvPqConwo", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f = Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n} \n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "b4ggS3BRssZBcRFPo", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:29:56"}
{"_id": "WxDvj6YfQnwNwuiBt", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x: File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "42gDGp2R9QN5CvWpF", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:02:53"}
{"_id": "dJDLriNXKaoPnDx7Q", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | link in Trash implies f.link in Trash\n}", "derivationOf": "6YCAyxW4Wgz22Mg2q", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:44:40"}
{"_id": "fLQhPdFXtvirfC738", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RJ7oE5Tmt9FLo7H69", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:18:31"}
{"_id": "zrNTS6BsrtrDmtdi9", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MAhmh4sNwvRE4iTec", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 01:07:07"}
{"_id": "tGQBaFk8yydhBF5xu", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \nall f : File | f not in Protected implies f in Trash\n  \n  (File - Protected) in Trash\n  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SkiRaQGuXufzKLLzP", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 23:31:56"}
{"_id": "goufx27eGkvJ34ExL", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tTrash - Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eRt9RCaCJyAxMMbgq", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:34:29"}
{"_id": "wdSy4dzqCPHHZuj7N", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   all t : Trash, f:File | no t.link \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pq5RoYGTynjFvC8kY", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 16:15:09"}
{"_id": "3TETwnL8YcP3WYhNT", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ynmMrZ68g9jKpE9H5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:46:11"}
{"_id": "XMiDFYEup4aQResFC", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all f : File | no link.f\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Zy4xg9cGxN4AChLqg", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 16:24:27"}
{"_id": "bvHDX5v8Yhn5A6KER", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File & not Preotected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yrnuoQ3GYoy7eQmEx", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:33:16"}
{"_id": "oFjuZR3rjZk7N5nFY", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "goufx27eGkvJ34ExL", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:34:38"}
{"_id": "RGXG9ZgrFGeHih5Bt", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Jy6ey43FtGJueJGEL", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 18:42:40"}
{"_id": "3ezZZC73kcbkmqAgP", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "h4Q4q9Qu6Dyu8Cqy9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 19:10:50"}
{"_id": "zxsZNBQjeqCcnKKy2", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 14:12:48"}
{"_id": "ykJCxmSRTwSLzYNRj", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link . link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  Trash.link in link.Trash\n}", "derivationOf": "aqLgo3L3LTgdvAjsu", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 10:00:06"}
{"_id": "fDY2agJMZoiGnrF7B", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | all l : f.link | f in Trash implies l in Trash\n  \n}", "derivationOf": "CfAJoabi4WebafYiL", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:21:27"}
{"_id": "5YPMwx82zfC8EWqY4", "cmd_i": 8, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | link.f in (File - link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\t\n}", "derivationOf": "h8GaTrtyLbdLeLMuC", "msg": "- can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:23:31"}
{"_id": "rFAF6o5nHBoAFCfQR", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  (link.f no in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tubeeo7NBHppjq9mt", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 22:49:53"}
{"_id": "czYjPK9swLLRmMw3S", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no f: File.link | Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f: File | \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LduN4849RbFL825rq", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:33:45"}
{"_id": "6vTf5rGLsS7hgJRa4", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f = Protected & f not in Trash\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2temmLL5MAvj4fR2j", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 22:53:03"}
{"_id": "DTuv8MZPjTFRbnsPF", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Trash <: Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gaDD4qAh3MLGczTGX", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:53:31"}
{"_id": "cNfiGxgjLRhjoyDvu", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | no (not Protected) & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link & File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qsWcsTh3bCNfhqdTc", "msg": "This expression failed to be typechecked line 52, column 19, filename=/tmp/alloy_heredoc433466470556423699.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:53:06"}
{"_id": "oj2mBhKhSHbQxYXpr", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tno Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "upv8Q4Zb4Adp3M6EK", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:28:56"}
{"_id": "kdeNEJqofF4DuD65J", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \t\n \tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "N4CzX4MK5dGErTmSt", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:35:53"}
{"_id": "2LQD7HFjBYqPwmWMf", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9JdgxqbZ9zXhh8wZu", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:32:27"}
{"_id": "wnnHGLzE7hzfpGMSr", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  File.link.link = none  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  File.link in Trash implies File in Trash\n\n}", "derivationOf": "akEjFtFaoFDm2xqNF", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 17:41:55"}
{"_id": "z8ruF5yLmsXHaaGKs", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WFrogHWRKCcnZScQe", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:57:03"}
{"_id": "RQNapt3ALJTYNbtdc", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | no (f.link & f) in Trash\n}", "derivationOf": "d45JnRKN7puGTgxwe", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:33:15"}
{"_id": "FNBPq9Pcmgu3cekGR", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   file.link -> lone file\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "s6JSWu7a99mAWnwY8", "msg": "The name \"file\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 11:52:36"}
{"_id": "fkPJ58jS2yWHzQMeE", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "3zuq9g6QsLYpxy2zJ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:59:45"}
{"_id": "RCvtugWbXHapzfENT", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WoBbjtDyRcbx744TK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:22:48"}
{"_id": "EhxCRNmMSgXtFG9kv", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\nno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n Trash.link in Trash\n}", "derivationOf": "wnMKspJrn3xG6C9X4", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-10 18:10:34"}
{"_id": "7MWPFjXbiLjwLdKq3", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f:File | link.f not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nWzDMgbjrXiLsXHW5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-24 23:41:25"}
{"_id": "hxfXJn7thFtyg4hnF", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n\npred inv7 {\n\tall f : Trash | no link.f\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f.link in Trash\n}", "derivationOf": "i9YFEJtsbiEq925Gw", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:33:50"}
{"_id": "7snWckBH82gjrPEto", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all link : File.link | link \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7YWBTzA2469WB4Se7", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:08:20"}
{"_id": "etnXrnBtkaTGw6GNj", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f:File | no f.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash implies link.f in Trash\n}", "derivationOf": "Dq6fbZpnib6ogYmXd", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-24 23:45:07"}
{"_id": "nrNJBzCS5zupi78ZR", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mcZtG4nJpGdARhGWZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:40:01"}
{"_id": "EJ9gcGmJocLzNvF6Z", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  link not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ix8FJ97sdY8EGWc4z", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-24 23:38:09"}
{"_id": "A5pyMaETc4ygrE3df", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File-Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |f.link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YXQfvD8N4XiBdNzc2", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2021-1-12 22:37:45"}
{"_id": "ort9HXSuyoAqHNePA", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-4-30 20:20:01"}
{"_id": "Dmkx8vndBJ6DjYY45", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in File-Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink not in ^link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "B6mCzein4c8AKYoCE", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-8 02:34:27"}
{"_id": "HyTCzTe49ZNAwtYu5", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash implies link.Trash\n}", "derivationOf": "KsMyz5RAsk75pSEAM", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 11:29:58"}
{"_id": "SAk6Zwitkjyw9LScD", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-3-6 18:04:20"}
{"_id": "LpgCC9DFxrzJHdjrQ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rZ76k4WMAPaW6Gf5B", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:32:46"}
{"_id": "a7DmDtZNsMGtGKLHt", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tsome Trash - Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "75A5TvfYNmxt9PGA7", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:40:15"}
{"_id": "scgZhnBrgAwz4sDNv", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n    \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n  \t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.^link in Trash \n}", "derivationOf": "NzSx4ZSaMD6a7HERT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:42:23"}
{"_id": "ZAM5rReaJTXneCtxB", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all file: File | file.link in Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fe92emNq5gqoLkKqt", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {none}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:19:45"}
{"_id": "t9MynLmbDTR96H5BQ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  none in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "Subset operator is redundant, because the left subexpression is always empty.\nLeft type = {none}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-12 16:53:23"}
{"_id": "b6AhzLsz9WW6vikyT", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected no in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TkQRNDabK2qTYj3z9", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:23:19"}
{"_id": "FJ3jqBiNmJrXBwEwx", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File-Protected | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JK2DBYq6ZmCYSsTwC", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 13:25:57"}
{"_id": "4PdHCZFfxbn3o2t3Z", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7CEqrZQy22S2SXGrC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:24:07"}
{"_id": "sKpSiDWGzCt4BcEpW", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LqSuDqBJheJ74cmaY", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:31:05"}
{"_id": "d8sMkXoChYP7K7NmJ", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  File = Protected\n  some Trash\n  \n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AxnR4Rw2WoRuJFLXi", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:05:10"}
{"_id": "csZN2EixNQqYTwSXn", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1 : File | f->f1 in link => f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | f->f1 in link => f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File, l : f.link | l in Trash => f in Trash\n}", "derivationOf": "oEzsudbXDka8i5J7M", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 01:02:59"}
{"_id": "7WxA7uvQdYSF5JGqS", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "yTBz2Nu5Ro8p8zAua", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:26:55"}
{"_id": "QfnvDnWqtrDaq2MkG", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected -> Trash\n}\n\n\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hr6v6dJWCWho4ESGk", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:45:11"}
{"_id": "kr8EBrjDJzynGe3Wf", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "L5FJKxvf6gwki5foX", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 19:59:50"}
{"_id": "v9LHc9js2bgE6fENH", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | f1.link in Trash & f1 in Trash\n}", "derivationOf": "EDEez7knN4YGzv5DK", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:27:41"}
{"_id": "yrnuoQ3GYoy7eQmEx", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File & no Preotected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rN83tF8d6d97Jstce", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:33:12"}
{"_id": "aoxKtMcMtrFTk2WzX", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "txEsx9iTRHGGdjvyC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:54:48"}
{"_id": "mh4N77J6cYBEDk5cd", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {  \n   all file: File |  lone file.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  File.link.link = none  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  File in Trash implies File.link in Trash \n}", "derivationOf": "Md437yrZfbqQnDkRQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 17:55:24"}
{"_id": "X2FE9xmCxMy3xmudx", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone link.f\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hvowumQiS9f5NNRsL", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-23 15:31:11"}
{"_id": "Z2Zme5BhEhyhgdRFr", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6x9AyMpidgTA87p6T", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:31:21"}
{"_id": "uKNYv5tjJisfi2dqM", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "bMjEeZ2dzPiGSnNKq", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:20:50"}
{"_id": "aX6kk3sfxqBf7Q6mM", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 14:44:46"}
{"_id": "ZrZsw5Z9ihNFeCjJP", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File |  f =Trash\n  \n\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2b4Cvg3JrGBJPw2qa", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 19:03:33"}
{"_id": "CgzYKvnNqsW2L4vYQ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XwbjofgYmA4LYGhKt", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-19 09:58:08"}
{"_id": "JL2jBfFuyuzxeHaBs", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all file: File | file.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  all file: File | file.link = none\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all file: File | file.^link = file.*link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "33hxmJDiQ8qL8wiLN", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 12:23:52"}
{"_id": "GhGdHjTaLyZbzFL2u", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Y3nY9A3ZDd9L9GXcg", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:35:05"}
{"_id": "guxsnt7gNpgT4TNx8", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-11 14:24:44"}
{"_id": "oAnNwxeGMN9EdP4wA", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "5QuN8GtsEtwn4fuqJ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:03:45"}
{"_id": "5tLgpP2gSdQ4B2Arf", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tlink . ~link in iden\n}\n\n\npred inv7 {\n\tall f : Trash | no link . f\n}\n\n/* There are no links. */\npred inv8 {\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f . link in Trash\n}", "derivationOf": "QdhKnhBSJz6P7zQKw", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:41:18"}
{"_id": "4RDRtdcBwuyz5kpX4", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 01:03:59"}
{"_id": "R8o4jWhWn2jC5Z3LE", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all file: File | file.^link = file.*link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JuYcN9cYg6dciQz2t", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-18 12:24:46"}
{"_id": "Jf5nYfdkBTDyApjHW", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n    /* A file is potentially a link to other files. */\n  link : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (link.Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | (f in Trash) implies f.link in Trash  \n}", "derivationOf": "dAGKKZGwEgLkbLg9r", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:28:46"}
{"_id": "LTtJv5EhtPqPCjgpS", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 22:23:33"}
{"_id": "nEhrkz4xoFKJk4SXJ", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ymsfKktnkA8bj5aaN", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:28:37"}
{"_id": "WzuH9XSPgxKxTXX5Z", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LSJinyPixKCCnJ29Z", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 00:48:50"}
{"_id": "vRz3tZvsBb5nH6YAs", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cqqKNXDqBwK72ahM9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 16:58:43"}
{"_id": "3aJ2nLRrNQtHBWxRo", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  one ^link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4TX5Qk4FDXYb38NMB", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:31:53"}
{"_id": "QGDLX6nfhkDX2Ypjx", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-4 14:59:07"}
{"_id": "DDviFW52DN8XoYyME", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\nall f,g : File | f->g in link and g not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Hj98qPNb3DNJhhuD6", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-5-8 19:28:17"}
{"_id": "zEofmZezAfiY6regG", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rskYabrGKK5ZADQna", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 19:09:59"}
{"_id": "GFuunxwgoWvCMgDnr", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f in Trash and f not in Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EeH7LKsRZNEsfmLLv", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:09:38"}
{"_id": "ydgFdC5fzW3kDw6wa", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tnot e1 in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "The name \"e1\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:23:55"}
{"_id": "tcDbL3RgQauY6fJh4", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  no Trash.link.Trash\n}", "derivationOf": "h3Jh78993kf5fCMfZ", "msg": "This cannot be a legal relational join where\nleft hand side is this/Trash . (this/File <: link) (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 19:51:08"}
{"_id": "ghqCrKfqwCLTdPMPk", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File - Protected) in Trash  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "EfHps39Rm7K3CZkvS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:13:36"}
{"_id": "ALR37YLSTXECfGhtC", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlet x = File & Trash | no x.link & Trash \n}", "derivationOf": "QggvYvwetJurrz89u", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-30 18:41:44"}
{"_id": "Gf5XckQamoWaBA8Zn", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tPSzq6bSF9pXghs57", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-7 19:32:02"}
{"_id": "KwJDowkGh9frXbEB4", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f2,f3:File | f-> f2 in link and f->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,f2:File | f->f2 in link \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "T7Y2e2rnAaCndpZ3z", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-6-15 19:46:48"}
{"_id": "SZG7tEqAut4W6nf8g", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no(Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\tFile - Protected in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \t\n\tlone link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ybkb3b7YykqZbzkEs", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 00:09:06"}
{"_id": "fqEoNZfQbpgp3KtgC", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected&Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File-Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "b2N5dXBHZ3y8sZunq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 20:27:25"}
{"_id": "67RQBf5sfBB7k9KwT", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\nTrash = \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hCxfrv8RQ9G3E55hi", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-9-10 17:58:43"}
{"_id": "3gRFNDTvbTQ7rSxpf", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.^link in Trash\n  \t\n}", "derivationOf": "wgYxAmA8T4DqJ3RCe", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-30 00:04:45"}
{"_id": "ZCPxgZeL2g3N6rCvQ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { \n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cM2PziTmTzjWSSERC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 11:17:38"}
{"_id": "EmYHFxB7iQrH2wXLQ", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno File in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-22 10:24:23"}
{"_id": "aqLgo3L3LTgdvAjsu", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link . link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "P86GXHAkgf2wH8ZqQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:59:04"}
{"_id": "c65PDSgeuoSAxCtKw", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dEGp4kxjMrgWu2o7c", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-30 18:30:33"}
{"_id": "TR5tjCx49JJMakP9m", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tProtected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Rn8viLG9qrZWdjefs", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-7 19:01:08"}
{"_id": "Zh5RK8YDfyHqRK84d", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "R5RgHFuJDjJf9aD48", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:32:04"}
{"_id": "uiACiovBdRfKgsKeA", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    all f:File | some f1,f2:File | (f->f1 in link and f->f2 in link) implies f1=f2 or f=f1 or f=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link implies f1 not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "eXJcqhWG2pgkWESor", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:41:42"}
{"_id": "9k6RJHbCkYZJFvg8g", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected&Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File-Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fqEoNZfQbpgp3KtgC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 20:28:03"}
{"_id": "nW4gRYqguHcz4b2SQ", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:file | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2BE2s62JR9w3GHSrm", "msg": "The name \"file\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-27 21:05:30"}
{"_id": "hT3aimryRDqcs3LYA", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.File + File in Trash\n}", "derivationOf": "tZ2gPKNZHrZ7bSpwH", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:50:38"}
{"_id": "5QuN8GtsEtwn4fuqJ", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tFile in Trash = Trash.link\n}", "derivationOf": "wt7SA4frL6nyME9iy", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:03:30"}
{"_id": "zCRu3CqskQfvkbiS7", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  no Trash & Protected\n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Fg96isEow8ML4WTXR", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:38:04"}
{"_id": "nGWitHo7znRPtYuxX", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File - Protected) in Trash  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "wyjRa4nnt7LmeCwE5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:12:04"}
{"_id": "5vb9x26fGZrX26w9v", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash & (Trash.link in Trash)\n}", "derivationOf": "wg5zcfsB2po2ZuTMN", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:03:32"}
{"_id": "R4uctSkS49bHXWbNa", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile in Protecet\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2u9pYiMDgMb6ZTCTJ", "msg": "The name \"Protecet\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-11-14 01:16:35"}
{"_id": "L2amYSYr3DbT89Ku6", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n  all f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n  all f:File | lone f.link\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5d8TB4fJZKFB3Rdre", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:40:06"}
{"_id": "dEGp4kxjMrgWu2o7c", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno links\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dAQPF3fNRZsxkCTjH", "msg": "The name \"links\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-30 18:30:29"}
{"_id": "9Sc5xguwavghPGr2T", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \t\n  \tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tl in Trash => \n  \tall f : File, l : f.link | l in Trash => f in Trash\n}", "derivationOf": "nm3u4Arp82qiYKYZF", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-28 09:34:23"}
{"_id": "c3jXy7Eav27HS9DJt", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t-link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tKYWR8KqF9gbCGdTT", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:47:08"}
{"_id": "bQB6MTbhcL7rDkewv", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tlone File - Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Pmzyq6XPsn4oPdxMQ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:29:25"}
{"_id": "YQ9Pm67aehdvirbW9", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t : Trash, f : File | no f.link.t \n  \n}", "derivationOf": "Az4kmaqAg6h6KKAPb", "msg": "This cannot be a legal relational join where\nleft hand side is f . (this/File <: link) (type = {this/File})\nright hand side is t (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:41:54"}
{"_id": "yBpv73uj8PTbfksPC", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  link.~link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "L3mFRJMwaf5dQxACT", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:21:23"}
{"_id": "FKbmB6zAPdNs4Qgy8", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall l : link | no l.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "viMBHfGFqvpPFPGBt", "msg": "Analysis cannot be performed since it requires higher-order quantification that could not be skolemized.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:30:47"}
{"_id": "JNj88vR4xbJT4jYma", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n    /* A file is potentially a link to other files. */\n  link : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (link.Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | (f in Trash) implies f.link in Trash  \n}", "derivationOf": "EM4Tedu3xthWEs98R", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:28:40"}
{"_id": "ZKHKsWAFww5KiBnkN", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xRu5BqbLNsq9HPpMs", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:27:31"}
{"_id": "yN4S9aTfeaCh6fSay", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tnot Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GhGdHjTaLyZbzFL2u", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:36:19"}
{"_id": "z4F57mxYaCNa82iHz", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | one f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8zhxcGSCDSEBoXuX2", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-12 17:05:20"}
{"_id": "bNc9k9ngjqTq2X9ZT", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.links in File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uXFvdbCKKM6QmEaen", "msg": "The name \"links\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-2 19:24:12"}
{"_id": "5Qn4D9PbeEDNEbtey", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "T8H8sEEcmgo5rQJwY", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 11:13:34"}
{"_id": "Aa5e96Yn9EoWtD3kw", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n    \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n  \t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.^link in Trash \n}", "derivationOf": "vGsBRizchtZ9xbJPT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:42:42"}
{"_id": "PyxRkt5yFs2t2MeEg", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9hb2WqmnvDZqhrJAX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:40:20"}
{"_id": "A3SbG9z4zBdjBRJ23", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File & Trash) = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PyxRkt5yFs2t2MeEg", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 19:40:43"}
{"_id": "KB7k5xHD2CR27A47m", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1 : File | some F : File | f->f1 in link implies f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ypoZGXuut6QxmbB7d", "msg": "The name \"f\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-30 00:24:54"}
{"_id": "K5RCLpFCgvB7GX94R", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ex4cuqu7nudZQ9sYp", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-22 18:32:51"}
{"_id": "qaQQD3WjLiTfvaMXQ", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlink.~link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8wTdQehDPE77vW725", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:28:50"}
{"_id": "qcvd7x7o5xD5yTBxw", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FwFT3wyMAczfBKHhz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 23:25:10"}
{"_id": "CTfKPaqMWXZrtSMFF", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  one link.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Jr8FBYa2SeffbL44D", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-24 23:36:03"}
{"_id": "chsesPMmHc8svKqAP", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n all File not in Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HWYPyC9jCPYLuudrK", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 18:32:49"}
{"_id": "Q4DGfvK8DLcyTt5YG", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FNtNm3DJptHhwjJnL", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:10:05"}
{"_id": "RpboiuhDtx3EDg8Ln", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tone Protected -> Trash\n}\n\n\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "siX4Q5JhAc5ce9ASH", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:45:22"}
{"_id": "hYccs4pHN29Kwregq", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 { some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no File.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link \n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8rtvnWqu4gKTvk8Rp", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 16:21:37"}
{"_id": "4qaw8QsDLBgDQMBqP", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link = Trash\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:08:53"}
{"_id": "cnAWCYJa6HkffDgpL", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  (some File) = Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HxpqomsvDCnZ5H26g", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 18:52:13"}
{"_id": "whQ2MPstxqPizTxTm", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "owQfCGPxasZoNvnLE", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:29:28"}
{"_id": "ugbv6boYj7DmTMkBA", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tFile.link & File in Trash\n}", "derivationOf": "r7fBacEpqct2nSfsK", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:51:21"}
{"_id": "g7ZZqk6fwLPsSNpQT", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (File.link . File)\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "MeqoFtyfhHE95EkWZ", "msg": "This cannot be a legal relational join where\nleft hand side is this/File . (this/File <: link) (type = {this/File})\nright hand side is this/File (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:14:01"}
{"_id": "83wgW74hitztegZnB", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BsmD33b2hR27BDn4C", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:33:55"}
{"_id": "5d8TB4fJZKFB3Rdre", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n  all f:File | lone f.link\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "o8iqf6xKf5vy83axB", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:39:24"}
{"_id": "cctTgbiDNapqSFdeK", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t : File  | some t.link\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fNPSFWht2rALDnPEQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 11:30:58"}
{"_id": "XomcMyirpa4nruKsW", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\nsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Tq3hE2bjywaAxMbGo", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:32:02"}
{"_id": "avuoQJpALagJZKmah", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    all f:File | some f1,f2:File | (f->f1 in link and f->f2 in link) implies f1=f2\n}\n\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link implies f1 not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "ZCrSENrNMay7PxXyB", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:56:29"}
{"_id": "6vkfiwnbWXNB3baEK", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "L3ugQp5JMwbAfX7Mb", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:11:33"}
{"_id": "TxtA9jbXYD9gAgzam", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  (Protected  not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hsHfcxLtEJ9zKo8ya", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 23:33:12"}
{"_id": "yFoSiwHSKJvgWp9Nt", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  lone link.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ivEmRtzedMHAMboit", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:24:47"}
{"_id": "jGzYc3WCTnijXFNkJ", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File \n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected  in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { some File.link -> Trash implies some File -> Trash\n}", "derivationOf": "YeFLAQ2QYQ68Lh4dG", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 08:40:47"}
{"_id": "XLQobykgxoMfPDQrG", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "jnYRpmfY8BvLbLCbJ", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:08:32"}
{"_id": "3m2Zm7RnT4yHXRMmQ", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "EKhsXXj58JQqyAAYG", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:59:38"}
{"_id": "4uj7LPssEnvMLv3tk", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-7 14:54:37"}
{"_id": "MJdL3XNcCv5TWQR7o", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no File in Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "chsesPMmHc8svKqAP", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 18:33:09"}
{"_id": "9QjW776bjCLj4tzZe", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n not some f : Protected | f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  all f: File | no f.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "372biy8Kgzcozm6zh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:14:42"}
{"_id": "QrsPTFJCPjnKP6bF6", "cmd_i": 3, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  Protected = (no Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "hfyx9DuybwMpYjZk3", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/File}\nRight type = {PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 20:03:00"}
{"_id": "kFpJZzhy4mXtRNfLr", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tFile in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zZ9DXYGar53RjFHkN", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-18 17:44:55"}
{"_id": "kW6nqSE7MwCXg8hHG", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all file: File | file.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bYJ8cgqDMJKxBpsdf", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 12:19:15"}
{"_id": "eXJcqhWG2pgkWESor", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    all f:File | some f1,f2:File-f | (f->f1 in link and f->f2 in link) implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link implies f1 not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "vh4vgSSczidtPK7x2", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:40:23"}
{"_id": "pLTffsXykeDJ5pSuK", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(no Protected) in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "988hgAD5F9XQk2moX", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-18 17:48:10"}
{"_id": "Awm62TKgyB3KEnfdt", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n\tTrash=none\n}\n\n/* All files are deleted. */\npred inv2 {\n  \t\n  \n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gMkzkEv47APehnEKr", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 16:28:11"}
{"_id": "3sPTewbL3QJ6bficc", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \t(File\\Protected)\t& Trash\n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DY5sj2SnfQnAAKpGH", "msg": "Syntax error at the \\ character. HEX: \\u5c)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:57:31"}
{"_id": "6qnNjHf5v9rGyjRMo", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aSQMdwAxZH3bCtucM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-25 13:02:34"}
{"_id": "drtz8HePrbPtMopB7", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g: File | f->g in link implies no g.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | link.f in Trash implies f in Trash\n}", "derivationOf": "8a7JsKqb7tfwvTwLg", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:40:55"}
{"_id": "9qkuHfMZDpKFmdH3W", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vc5m7559sYE2bAMdz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-18 09:41:53"}
{"_id": "Py7Ai9odujPhKBHzW", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t : Trash | no link.t\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : Trash | f.link in Trash\n}", "derivationOf": "PLF95f9RRWvtrf6qd", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:42:53"}
{"_id": "Cu5LnTZHCdyenJdYK", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tlone Protected -> Trash\n}\n\n\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RpboiuhDtx3EDg8Ln", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:45:25"}
{"_id": "a5KpffHxd5poiJwbF", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n  \tnot Protected & Trash\n}\n\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DYm29YuCmTtwPJzJt", "msg": "This expression failed to be typechecked line 53, column 4, filename=/tmp/alloy_heredoc9709927331605987492.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:27:59"}
{"_id": "gEsb7GToktsA5YyJL", "cmd_i": 0, "code": "\nsig Node {\n   adj : set Node\n}\n\n/*\nThe graph is undirected, ie, edges are symmetric.\nhttp:\n*/\npred undirected {\n  all x, y : Node | x->y in adj implies y->x in adj\n}\n\n/*\nThe graph is oriented, ie, contains no symmetric edges.\nhttp:\n*/\npred oriented {\n  all x, y : Node | x->y in adj implies y->x not in adj\n}\n\n/*\nThe graph is acyclic, ie, contains no directed cycles.\nhttp:\n*/\npred acyclic {\n  all x : Node | no x.(^adj) & x \n}\n\n/*\nThe graph is complete, ie, every node is connected to every other node.\nhttp:\n*/\npred complete {\n  all x : Node | x.adj = Node \n}\n\n/*\nThe graph contains no loops, ie, nodes have no transitions to themselves.\nhttp:\n*/\npred noLoops {\n  all x : Node | not x->x in adj\n}\n\n/*\nThe graph is weakly connected, ie, it is possible to reach every node from every node ignoring edge direction.\nhttp:\n*/\npred weaklyConnected {\n    all x : Node | Node in x.^adj + x + x.^~adj\n}\n\n/*\nThe graph is strongly connected, ie, it is possible to reach every node from every node considering edge direction.\nhttp:\n*/\npred stonglyConnected {\n  all x : Node | Node in x.^adj + x\n}\n\n/*\nThe graph is transitive, ie, if two nodes are connected through a third node, they also are connected directly.\nhttp:\n*/\npred transitive {\n  all x, y, z : Node | x->y in adj and y->z in adj implies x->z in adj\n\n}", "derivationOf": "8gKtQPpBPPXNF8jpK", "msg": "The name \"Trash\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-4-16 18:29:42"}
{"_id": "FeMR2PEswtLiL4TCd", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tTrash = \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rmXAE6y3xYczjMG6d", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:26:48"}
{"_id": "EzHA222vo9ixEJW6o", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g : File | link.f in Trash and link.g in Trash\n}", "derivationOf": "iwfbBGZHJ2mEudkXe", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:46:00"}
{"_id": "9hWL4TKh2dPyRPLx8", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f in Trash <=> f not in Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "eCEzGt2sENKMGnMZ6", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:22:48"}
{"_id": "kr7Q9qEuFvwcEZace", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File | f not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "snA62MiTPzEAM2gSQ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:24:52"}
{"_id": "DZtYf49LHfJwKMm8s", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZCPxgZeL2g3N6rCvQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 11:17:42"}
{"_id": "HDB3JyN3XbYcXTd98", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n  \t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.^link in Trash \n}", "derivationOf": "ZCFG3oXvtkSXY9Mme", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:40:46"}
{"_id": "T7Y2e2rnAaCndpZ3z", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f2,f3:File | f-> f2 in link and f->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,f':File | f->f' in link implies f not in Trash \t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "egPiufJueDuDR7Akz", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-6-15 19:46:16"}
{"_id": "b3LQRvSN97bZcbchu", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n  \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DBMriDNWikY2nzpmw", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:19:52"}
{"_id": "DYm29YuCmTtwPJzJt", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n  \tnot Protected & Trash\n}\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "i6eWoormYNsCw5bbc", "msg": "This expression failed to be typechecked line 53, column 4, filename=/tmp/alloy_heredoc6445154331338930127.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:27:53"}
{"_id": "Pg84xJQtzfucc8qaN", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.File & File.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "39RTeSvdr8nseqMRo", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:34:32"}
{"_id": "timqFRt7ovspHhnd5", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash & File in Trash\n}", "derivationOf": "ugbv6boYj7DmTMkBA", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:51:31"}
{"_id": "a4oFTJpaZ6vPWXpkh", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yWwkbpfioTMCYfLHe", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 14:52:17"}
{"_id": "wcgaibsTi7w2GAy8k", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t Protected no in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ev46n7ABTrenJPYNX", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:26:55"}
{"_id": "63yXvxpdKA8Lzng3x", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected no Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tbnv7HeNKKvDMdokb", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:25:08"}
{"_id": "bYJ8cgqDMJKxBpsdf", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all file: File | file.link & Trash = None\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hShNiTYSssB7BZsSK", "msg": "The name \"None\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:19:05"}
{"_id": "D8sY5dFGvJEsiGKJN", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-4 03:08:59"}
{"_id": "xEQQYYeEmLeCG5NQn", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WoRR3GRzGTGBkmriy", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-30 00:09:13"}
{"_id": "TsW9wcdrtNAwrGXiF", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-6-8 11:04:46"}
{"_id": "cT8PDTeh65ZRuczrc", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "n8AcfsDaSCAX9MtYW", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-23 15:30:50"}
{"_id": "nkJcFm8NDdj76dEYm", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6aZSj4AKWPvhv2dyK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 16:47:07"}
{"_id": "znaG3JFgErt5N43J7", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\nalways no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-8 15:04:11"}
{"_id": "u2rSQiG5gi6tgaAHY", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7QMevGfk7Xh5MRpwe", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 18:51:34"}
{"_id": "33hxmJDiQ8qL8wiLN", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all file: File | file.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  all file: File | file.link = none\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "X52XoM9FoNJ5t4uj3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 12:20:42"}
{"_id": "vT36waXSqAMAPgm3T", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "trGLdCXXWj7FWk38x", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-4 14:59:40"}
{"_id": "nacCbsMAL2okRHfdd", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f, t: File | no f.link.t.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "v5SFTnQsiEAmANtKp", "msg": "This cannot be a legal relational join where\nleft hand side is f . (this/File <: link) (type = {this/File})\nright hand side is t (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:28:23"}
{"_id": "KxaLzabWEzugCgwPM", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link :> Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ysZSYr7mCMPN4Nq3Y", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:24:51"}
{"_id": "3b8Xg7eAKpSGRC7G5", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3g3CukJq6BKsqgQXe", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-7 19:33:15"}
{"_id": "idpebA6o2mtBRFY69", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yRj4vKG8PWQ6KBs4G", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-4 15:02:47"}
{"_id": "yaLxbgsfwJR8xWkn9", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t ~link . link in iden\n}\n\n\npred inv7 {\n\tall f : Trash | no link.f\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f . link in Trash\n}", "derivationOf": "WEPGnn59DWPe8wKPu", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:46:33"}
{"_id": "AYi5CMToarkRyj87p", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DoaKRhLdNKGGf2XE2", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-13 18:53:37"}
{"_id": "iWSvA9BDES94ngiuR", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-6-15 12:58:16"}
{"_id": "H9g3K3nDA3rHbKebX", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "8SbWkYfsgqMaJJT7T", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-21 18:27:23"}
{"_id": "snA62MiTPzEAM2gSQ", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  File = Trash + Protected\n  no Trash & Protected\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "G4JCawoYyLszuffZK", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:23:26"}
{"_id": "iyTWmfh6vZKZzidjQ", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FeMR2PEswtLiL4TCd", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:28:41"}
{"_id": "aLuRLuQDx6gzMmTJk", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Trash & Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2f69ePb2NRYvB8uBo", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:43:11"}
{"_id": "o8iqf6xKf5vy83axB", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f1,f2:File | f->f2 in link and f->f1 in link implies f1=f2\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FMdEmeyvD8aqaYmGz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:38:59"}
{"_id": "PLF95f9RRWvtrf6qd", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t : Trash | no link.t\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  Trash.link in Trash->Trash\n}", "derivationOf": "sEBciLFicq85Xv3DM", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:42:19"}
{"_id": "FBtEqGmHhFgh4S78B", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-4-24 23:08:01"}
{"_id": "gMkzkEv47APehnEKr", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n\tTrash=none\n}\n\n/* All files are deleted. */\npred inv2 {\n  \t\n  \n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mRLDvHssFRmQeJx5z", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-12 16:27:31"}
{"_id": "DfyBPNvHfTBqozNf4", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \nall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XAtyKu9kcsm8Jyd4i", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 23:50:24"}
{"_id": "76tXKwgxu82Z7sAgC", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TSP3AXaAJEeSD8tds", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:55:15"}
{"_id": "7JKZbYvwQb3z5QgXv", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFiles in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3tYN6c3m7TSg6aZkj", "msg": "The name \"Files\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-23 15:26:17"}
{"_id": "gTHqHfKTwBMFxC59J", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "wBjHRRHXx73pR26fy", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-26 02:34:01"}
{"_id": "3R8jreRF7pXWfhiQm", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Z2Zme5BhEhyhgdRFr", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:31:42"}
{"_id": "XLZP5M4YNECh5wD8c", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dPA2Ygs3hW6eJa2h8", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 16:56:17"}
{"_id": "RBwFyapuEQQ3xyTtv", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cbaoZwsnfQs2c92Qd", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 16:50:57"}
{"_id": "JqRG4uRHC3m8zL2o3", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4PomHjbWGY3fqJTDF", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-13 19:06:47"}
{"_id": "4zQaHiCt3YpHejftj", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \tFile/Protected in Trash \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "vjFZKNcJHWhy9wjHF", "msg": "The name \"File/Protected\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:07:20"}
{"_id": "9ehJEJwQBqMXGHHu8", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n    \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n  \t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.^link in Trash \n}", "derivationOf": "MvgPrkwPWYWB469hK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:42:35"}
{"_id": "CfAJoabi4WebafYiL", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | all l : f.link | f in Trash implies l in Trash\n  \n}", "derivationOf": "KSJrziH7hdXbrpYvb", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:21:20"}
{"_id": "wBjHRRHXx73pR26fy", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "rRrDLdJwidgh37otC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-26 02:33:58"}
{"_id": "dYCr8jdbYNHpb4cZt", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wmk2gCZB6d8SWqchF", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-4 15:02:21"}
{"_id": "FCWFTKMxF7ksM6E3z", "cmd_i": 7, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "8oku8S4MbkvfdknPa", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:18:59"}
{"_id": "SzrWSeMBqT9Kv6mwg", "cmd_c": false, "cmd_i": 0, "cmd_n": "test", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\nrun test {inv4 and not inv4o}", "derivationOf": "f6nnYtuFm4SPhJcdA", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:34:19"}
{"_id": "txEsx9iTRHGGdjvyC", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno Link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "PjhKnyeJnodGtxJF3", "msg": "The name \"Link\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:54:39"}
{"_id": "iGHC8LfQiTwzPXuEA", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mDKymnHFMbzgebK5C", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 15:05:42"}
{"_id": "8rkN6eGCWMogdMJuz", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  File & not Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n  all f:File | lone f.link\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aSJh4dPhQrJRQp7Td", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:43:45"}
{"_id": "pxx5Ee6ZXttKPBH95", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "fDd7EPqm2RK45yLF3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:43:41"}
{"_id": "czdT9k999p56JQg6u", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Files - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ScKNehKPA2uwPtxbr", "msg": "The name \"Files\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:02:32"}
{"_id": "YGho7JM26mPKcSQn7", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f.Protected - f.Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "j225L2o6TFviKZ9FJ", "msg": "This cannot be a legal relational join where\nleft hand side is f (type = {this/File})\nright hand side is this/Protected (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 22:46:03"}
{"_id": "CQ2rGBToe7NwBdJdt", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sL7s5ny5keQwAXDXu", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 19:29:07"}
{"_id": "Nf6zHCKkFzmBPhb7X", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t : File  | some t in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FijysxvExt2jtAe8k", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 11:30:01"}
{"_id": "bgQ5MGuqSsrkJwYth", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n    \n\n  \n  \n  \n  \n  lone File.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "xemN6fNFHBNfu5PYK", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-12 17:27:37"}
{"_id": "tQkELDn3jntoLQGt2", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tnone trash{}\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SzXuvzpz3vvAJpivb", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{none}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-22 10:36:33"}
{"_id": "TaYC58YKK8i67x5Xf", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f: File | not f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f: File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | not f in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | #(f.link) < 2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2BomMGGMxsxdskwBu", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-31 20:45:22"}
{"_id": "bMjebQ3GdqQxCZuT6", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  File = Trash and Protected\n  no Trash & Protected\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PNrvekwC3AAA7jpY8", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 14:59:10"}
{"_id": "nsrCPeBaApHRDiRhv", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies not in Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 22:29:57"}
{"_id": "ttpSrDkqmza6Ed5Kx", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\nall f:File | lone f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "L9Rg6JpYZrpH9GNMx", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 23:40:19"}
{"_id": "SNMY5zPkk9dLPTtQW", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  \tlink.Trash:>Trash\n  \t\n}", "derivationOf": "CaPGN4KfBajRmS93b", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 20:41:41"}
{"_id": "w7tgfYk2K9PbGEArp", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno ~link.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fGDBDnYWH37nPWAP5", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:32:57"}
{"_id": "DbccMxJQNso5uB74z", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t: Trash | no t.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "WfoCWygbgh5zwFjbA", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 14:52:13"}
{"_id": "5924oP53QNDdxHd4C", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    all f:File | some f1,f2:File-f | f->f1 in link and f->f2 in link implies f1=f2\n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link implies f1 not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "pa8evhGgScWEh4qR3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:36:36"}
{"_id": "swEy5Prqs8Af8hZLL", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "c98YGjAdp9pne6QPQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-13 16:48:46"}
{"_id": "ozcqNGikLZgRQiite", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFiles = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash & link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Pb9Hd3SKx5QugBEdg", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-11-5 10:12:48"}
{"_id": "yWwkbpfioTMCYfLHe", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uxJu3P4wDQJTNFZfG", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 14:51:58"}
{"_id": "JspNLXBt22MTbBkbf", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all l1: File.link |   all l2: File.link | l2 & l1 = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2uJPvco79uFdwoy8d", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 10:56:04"}
{"_id": "Z4K377Z6TAJnMpmkD", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n  \n}", "derivationOf": "NdJKoWwhtXNuD3x2R", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 18:10:59"}
{"_id": "y38H3Y4Fhf7Z5Jyv7", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "pdvKC4PPGTm5RqEDv", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-22 19:24:49"}
{"_id": "LYjvoQYQCdFyvX4nw", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:28:34"}
{"_id": "c5PyRRAvT5DogXhjh", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no(Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\tFile - Protected in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \t\n\tlone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SJSe3sXGJmJXpvjSy", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 23:52:00"}
{"_id": "wt7SA4frL6nyME9iy", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash\n}", "derivationOf": "gzJj3RNDm7npw7e2Q", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:53:23"}
{"_id": "iWekmT6adfy6pg6yH", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nEhrkz4xoFKJk4SXJ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:28:56"}
{"_id": "nWzDMgbjrXiLsXHW5", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f:File | link.f not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uHrficnvf8TcrR6Zp", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-24 23:38:50"}
{"_id": "GrbuomrkEH9QiFY7s", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aEcEfSS7wbwDLCMiS", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:26:38"}
{"_id": "utgNfpWw4xpNeoaQ7", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t : Trash | no link.t\n}\n\n/* There are no links. */\npred inv8 {\n  all f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7uHpYgX8C6EcjCEST", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:36:08"}
{"_id": "WS4ycqvPSft5sx2kE", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BJtu3JZz2TiC57EDf", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:22:59"}
{"_id": "5c6rzNBJH9LBTLFK7", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some f.link implies no link.f\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "tdETBtD2yPmPpSZdT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:54:19"}
{"_id": "ap3piyZswP92jDLWY", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File - Protected | f in Trash \n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File.link | f not in Trash\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f.link in Trash \n}", "derivationOf": "CivrwF3RznopueY5h", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-25 13:17:53"}
{"_id": "BBRcSKQ7zb3hsz7z8", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | (Trash.link.f) implies (f in Trash)\n}", "derivationOf": "xPwRnxMi9HJ9JuTwh", "msg": "This cannot be a legal relational join where\nleft hand side is this/Trash . (this/File <: link) (type = {this/File})\nright hand side is f (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 19:58:25"}
{"_id": "nwKY47ijd2frzdwv6", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fakgf36ycQFCQeuqP", "msg": "This expression failed to be typechecked line 45, column 2, filename=/tmp/alloy_heredoc4692655933345106066.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:35:37"}
{"_id": "imM4nXdA9Aqrmr7Wc", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jj8DZqgo2mksjCj5Q", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-6-10 07:22:18"}
{"_id": "xN7uGBw56fDDwL5Hq", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   file: File |  lone file.^link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kR38YnBQmzHCHaTtT", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:16:04"}
{"_id": "TXqPwGBYrh8GBqAnh", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all link : File.link | lone file: File | file in link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CPK8H2Nn93S6Zqn42", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-18 12:11:45"}
{"_id": "nLMAPXfNnQ4YkGMW6", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  File & Trash = some  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   not Protected in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all l1: File.link |   all l2: File.link | l2 & l1 = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fNoNzns2x6zZgZwN4", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:18:15"}
{"_id": "sM9YyjXzgPb5wjinC", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file : File. | file.link -> lone file\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gJ5hMDZbzDfP9Wy5W", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:02:31"}
{"_id": "Nad6foXdGDxjzREfX", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile - Protected = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DR2uGEpJDqL3LZ9fY", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-18 11:46:58"}
{"_id": "eaoKzqzvB4YBE8rdN", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | f in Trash => f.link in Trash\n  \t\n}", "derivationOf": "zCFRaGMiNYhtwpjxD", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-15 00:52:32"}
{"_id": "qqoRRZMLPCwj9eLFb", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | some f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LoebLx6LHA2SEuR8H", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-12 17:04:12"}
{"_id": "JsputzNBCNLoHD5Mu", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tno Trash & Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "urAdawQ5poXa5PSuq", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:37:15"}
{"_id": "fzXdxp6PkugNqWJXk", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-15 07:51:17"}
{"_id": "merTacCx8b77iZXur", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x:File | x.link implies  x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HWrtbnk3yhLzZBY2C", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:50:08"}
{"_id": "WMx7GoPuF4tWMSh2Y", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "ACbWNXB2DnBHrzSoh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:34:40"}
{"_id": "z6vdWk8fbonafS7qQ", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f: File | one fl: f.link | fl in Trash implies f in Trash\n}", "derivationOf": "GtgdGwqey8rEb93Bc", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:20:55"}
{"_id": "bMjEeZ2dzPiGSnNKq", "cmd_i": 6, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | ~ f.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "izaoTRGG98vLtzSB6", "msg": "~ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:20:36"}
{"_id": "ALAo5Xa49SFTDCf9n", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f1,f2:File | f->f2 in link and f->f1 implies f1=f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6zKJbAq6uZCXgwxE9", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:38:23"}
{"_id": "RHDDRt6QDtRFKLeJN", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link :> Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KxaLzabWEzugCgwPM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:25:11"}
{"_id": "4n7xvQnLx2JtDFLio", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | (f->f1 in link and f->f2 in link and (f1!=f) and (f2!=f)) implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "G4xf9jKQDritHHt6j", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:31:07"}
{"_id": "uQrBoEbRkb8oEC3Dd", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AES3kCZYa8WqSW57y", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:54:03"}
{"_id": "qtk3ynuZfvcSLxPyM", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ysAWToJ5uv7R244ew", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:11:42"}
{"_id": "ufGpRSSZ9adiwqBWC", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qaQQD3WjLiTfvaMXQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:29:02"}
{"_id": "m5x3yTZgkL9SgACTR", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f: File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eTfbn9h4sBGEEjP6S", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-31 19:53:58"}
{"_id": "jxJXkWmvNMw3q3Xot", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yaiW957WgFTwCaEbK", "msg": "This expression failed to be typechecked line 45, column 2, filename=/tmp/alloy_heredoc16800220269976688088.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:28:19"}
{"_id": "LpA6jyaSNJEHEq9uC", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n  \n}", "derivationOf": "B8gMRak7XRbcQAws5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:08:50"}
{"_id": "AGm4ue8aZMFqR5Zdr", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t-link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Qtsh6X4cJrNtpxJyK", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:46:18"}
{"_id": "ojebjQ65WTwg6hKmm", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qjNAzjnC37FKXv5Ty", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:40:40"}
{"_id": "iEgD62JEukBEpJmpm", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GELYwHXEHKZoG5aEW", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-13 16:36:00"}
{"_id": "7q7SAp7cJ4yF7NoX2", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 20:05:41"}
{"_id": "AtLWbLHu56PmshXyR", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pLTffsXykeDJ5pSuK", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-18 17:48:19"}
{"_id": "ybkb3b7YykqZbzkEs", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no(Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\tFile - Protected in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \t\n\tlone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HjWMoWesWLz3DZnm2", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 00:07:02"}
{"_id": "rBbaZQbsT28oT6uNM", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f:File | f in Trash implies f.link in Trash\n\t\n  \n}", "derivationOf": "B8gMRak7XRbcQAws5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:05:50"}
{"_id": "h4Q4q9Qu6Dyu8Cqy9", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zEofmZezAfiY6regG", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 19:10:18"}
{"_id": "FxBNu6ZWJrahFnFNE", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tRile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wGDhyq9SkvvJMwu8G", "msg": "The name \"Rile\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:24:59"}
{"_id": "rqvyBGmohQ6B6oeRm", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "n9xjm9LTocMKxvknM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-8 15:06:27"}
{"_id": "vjFZKNcJHWhy9wjHF", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File \\ Protected) in Trash \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "vy9wCTMyz8Dnv5w36", "msg": "Syntax error at the \\ character. HEX: \\u5c)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:06:26"}
{"_id": "LS3wvxuLAhvkrAuzv", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\nall f,g:File | f in Trash implies f->g not in link\n}", "derivationOf": "SGh7g2jaFbXYMjFMN", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-5-8 19:29:52"}
{"_id": "7JtfS8NQK7nWEaG4r", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected & f not in Trash)\n}\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jY7Qwi97bTaAoo5MD", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 22:31:40"}
{"_id": "tqyKELhyf95TvR9zD", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link & Trash)\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | f.link\n  f=Trash&link=Trash\n  \n}", "derivationOf": "xyWGmKfiMqQrkYo2X", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:23:24"}
{"_id": "h6HWyBwBmoZruieGz", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  \tall Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZNpngaijaDtus5NR5", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:03:16"}
{"_id": "37fFnkCZFuQYXRfA6", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t(not in Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "zc3vEd2XFjM6GQhY6", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:14:56"}
{"_id": "fCZWgJQSx8q5uQMbA", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8jQJtPBxMjGhbw74a", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-22 18:55:03"}
{"_id": "EwTX3DfcHhR57JLjh", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tig2f8WQXMpQJ7g8F", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:28:39"}
{"_id": "KHj6db2Ejfm7Eshkr", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1 : File | f->f1 in link => f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | f->f1 in link => f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f, f1 : File | f->f1 in link and f->f1 in Trash => f in Trash  \n}", "derivationOf": "4znxMEKGZBbPFsz6Y", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 01:01:20"}
{"_id": "Mjvscs6NXfbL3QgW9", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall t:Trash | t in none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f not in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Mvi7zSS3bH8rhezEr", "msg": "Subset operator is redundant, because the right subexpression is always empty.\nLeft type = {this/File}\nRight type = {none}", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-6-15 19:38:54"}
{"_id": "G7NXe4QpydyGF5jfp", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x: File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tall x: File | lone x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KEv7a7CjKXPjJE52h", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:04:16"}
{"_id": "5aK9EtuvHqi2LxGDa", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (link.File & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ufGpRSSZ9adiwqBWC", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:29:54"}
{"_id": "pkxivdyxdLSNoEt3L", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  File.link.link = none  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  File in Trash implies File.link in Trash \n}", "derivationOf": "fbYNu4CYwF7Si5TCE", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 17:54:19"}
{"_id": "ZbJc695s5k4nE6Kp3", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 { some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TDjY7SLLkvWpMzLJ3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 16:02:15"}
{"_id": "NxodxdjWERaPL5WFt", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f:File | disj[f,f.link]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uTW36YkCeb8GDQTwB", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 16:54:27"}
{"_id": "GPSn9SvZtiZmyXEM6", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  link.f  implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File |  no f.link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8HvfuKxDKgmXHPX6e", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 23:38:01"}
{"_id": "JK2DBYq6ZmCYSsTwC", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fw5WEbWBP3jF4ESpj", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 13:25:35"}
{"_id": "HCFxsNe7D3BoJKg2L", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-16 15:59:54"}
{"_id": "YyJZmBEZukLuAAdJp", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "23Ymx8gJsgAvhmDXQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:28:31"}
{"_id": "8BM5cNBARuoxSv8MZ", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QrQBN6nWgQc4wMxCt", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:03:41"}
{"_id": "eXqhe6Noope4EtgQ6", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6RqftRbp9JAyGMb9b", "msg": "This expression failed to be typechecked line 45, column 2, filename=/tmp/alloy_heredoc4595105481122178193.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:28:23"}
{"_id": "znjehACwEzfvzH8q2", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | some f.link \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.^link in Trash\n  \t\n}", "derivationOf": "s38b8w4GEitTTCRYH", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-30 00:09:09"}
{"_id": "xN43gZG2XXcSi86jN", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n  \tno Trash & Protected\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JfH4LGLjpDnmWikCz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:44:37"}
{"_id": "QmNwSdWaBdMGKaCsy", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = Protcted - File\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ugx7qTMzrLPJ8jJCx", "msg": "The name \"Protcted\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 20:18:31"}
{"_id": "JgJDdyNBvDubDCGz9", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File.Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AYi5CMToarkRyj87p", "msg": "This cannot be a legal relational join where\nleft hand side is this/File (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-13 18:53:52"}
{"_id": "ZoCX734vZrLF4AhzY", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tno Protected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MoKGuKRFfF2FawfRB", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:36:40"}
{"_id": "WTguk3qXvE6j8kwBf", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n   not Protected & File in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n  all f:File | lone f.link\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FD74LtyqapLiKhW2n", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:44:05"}
{"_id": "2j87M3SoZLmxfEkgf", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | f in Trash => f.link in Trash\n}", "derivationOf": "zqDBRf6tTjnDCFHCT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-15 00:44:29"}
{"_id": "wvRqZejp4fqHJbDet", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t : File  | some t.link\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { all t: Protected | t not in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f: File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link.Trash\n\n}\n\n/* There are no links. */\npred inv8 { all link.Trash\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ehhsps4LkBrnpC5Qi", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 12:22:29"}
{"_id": "CCGBuotqwzebfgtr8", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\nall f:File | f.link implies not((f.link).link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jTvNPe5wSwuq6yGER", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 23:42:48"}
{"_id": "57WQt5EsastSsPjjn", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash :> link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink.link in iden\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yBR72QBWErgTSibFQ", "msg": "This must be a unary set, but instead it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:18:58"}
{"_id": "QggvYvwetJurrz89u", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlet x = File.link & Trash | no x.link & Trash \n}", "derivationOf": "Eto7sNBSor5ZuRT9a", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-30 18:39:56"}
{"_id": "hEZaf8SEF5smuBDfX", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:22:23"}
{"_id": "9gzfvghTtpPNf3ZDG", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SxpoByeBL5MnPDwbw", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 15:51:27"}
{"_id": "Wzg3nTXbSLshdMhhF", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  Trash = File\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pfPT6rWsphSEG9vGm", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:17:28"}
{"_id": "QdhKnhBSJz6P7zQKw", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f . link\n}\n\n\npred inv7 {\n\tall f : Trash | no link . f\n}\n\n/* There are no links. */\npred inv8 {\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f . link in Trash\n}", "derivationOf": "WM2qvam248DtcvezD", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": []}, "nodePositions": {"File": {"x": 400.53125, "y": 199.1999969482422}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-10-3 09:39:49"}
{"_id": "dnELNW9ddowjzbaje", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  (no (all f:File| f->f in link )) and( link.~link in iden )\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7qXGarAcvE5kg295z", "msg": "This expression failed to be typechecked line 57, column 4, filename=/tmp/alloy_heredoc12254096841340239785.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:54:08"}
{"_id": "q7ns6TnGEvrCHrBJP", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  Protected = Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "j2DCfPnFK3evpGEeg", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 20:02:32"}
{"_id": "akGgJ7PYRKwgnrJKM", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File \n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { some File.link -> Trash implies some File -> Trash\n}", "derivationOf": "rczaWCtzj6zj6eMuC", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-14 08:31:38"}
{"_id": "Le8ShNJwkz9NntEi7", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mcuQ9nipNoCgJNJi8", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 21:23:02"}
{"_id": "XAtyKu9kcsm8Jyd4i", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \nall f:File |  f.link implies f.link.link in Trash\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aFNQAac8YfcznkSaW", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 23:50:09"}
{"_id": "jMXv6TxstZfaThkbh", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x: File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "G7NXe4QpydyGF5jfp", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:06:26"}
{"_id": "MNghswGBciuD8xKYJ", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "ZwmDfc6qsb2X7jmdt", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-26 02:33:29"}
{"_id": "9xPJCQHcsCWCRkbY5", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WzuH9XSPgxKxTXX5Z", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 00:49:05"}
{"_id": "CJg8F6z7YYeHrZHtH", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tsome File.link in Trash\n}\n\n\n\n", "derivationOf": "Syb8fsq839fyDDWsN", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-18 20:51:26"}
{"_id": "fDd7EPqm2RK45yLF3", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "oPWkanuqCbaisvsnc", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:43:38"}
{"_id": "saT6qkhb4ueF3NwZe", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "b2jMZgfycaQkDFFan", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:29:28"}
{"_id": "8rtvnWqu4gKTvk8Rp", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 { some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no File.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5B24EDhxjiGEiGvZe", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 16:12:54"}
{"_id": "MCQmpCaxu6XPpmMyL", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  Trash = File - Protected\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\nno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n Trash.link in Trash\n}", "derivationOf": "EhxCRNmMSgXtFG9kv", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-10 18:11:08"}
{"_id": "SiCJWKitFzThaMCRN", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f . link\n}\n\n\npred inv7 {\n\tall f : Trash | no link . f\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "md7f8duWhp9wGiyEu", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:28:13"}
{"_id": "x9Ziun7qZMjXyu5zo", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dij7iSDvPzN38PQ6w", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 18:51:29"}
{"_id": "XaHEYHXHPN9pjxqQP", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone (f.link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "DPRWssF97ZTCmTdxK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-21 18:30:21"}
{"_id": "K7ccCqe38TFvE4KWj", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tFile and Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2zByM9ubfoNhaq3Wb", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:31:46"}
{"_id": "3g3CukJq6BKsqgQXe", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Gf5XckQamoWaBA8Zn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-7 19:32:49"}
{"_id": "eKBXEPjWG283W9vWw", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rmHp6GRs4NybMZRPC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:26:38"}
{"_id": "Eca6dhFWCY38S4mBj", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "cT8zeqwwjf5CNW4QF", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-18 20:16:52"}
{"_id": "LwAFkupB5Q7H7xJBs", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f.Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HfhbMi7gsFMTmdQyz", "msg": "This cannot be a legal relational join where\nleft hand side is f (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 22:28:27"}
{"_id": "AoLGRPZLgbGxCi5Ag", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f . link\n}\n\n\npred inv7 {\n\tall f : Trash | no link . f\n}\n\n/* There are no links. */\npred inv8 {\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bP5uNpjKP6i38Kiwp", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:35:31"}
{"_id": "QXSJWDPLvryfSyjHN", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some f.link implies no link.f\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies link.f in Trash\n}", "derivationOf": "S7HEdWAP9ADjvW4sv", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-23 15:43:47"}
{"_id": "vi7Sr6AKe34wshrFP", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tsome Protected - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "W5v9wzTkQn2Mh8tjj", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:00:10"}
{"_id": "73wQnNb9gH8PoWe4L", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  \tlink.Trash implies Trash.link~\n}", "derivationOf": "4bHbG7NskKdvbbXap", "msg": "There are 25 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all fun iden let lone no none one seq some sum this univ { ~", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:30:10"}
{"_id": "uocswiuMAms64TF77", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7hjKH6B9ybmDJimfS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:30:07"}
{"_id": "JpkAtZs3CKvhPbhF9", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "PnjzZHtpkDNw8SKTN", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:11:35"}
{"_id": "35tnsQs6j6N3YuXY3", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n  \n  \n  (File & Protected)\n  \n  \n}\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PsXb9wqSQ62YxXQdq", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:51:10"}
{"_id": "izaoTRGG98vLtzSB6", "cmd_i": 6, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | no f.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "S5GhpuL5DqdiEp9wi", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:20:21"}
{"_id": "DPoZMM7YJh7wHHg6K", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GyeywpBit3Zd8T43d", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:19:19"}
{"_id": "R7YjkkeT7t5rncEZy", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File \n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { some File.link -> Trash implies some File -> Trash\n}", "derivationOf": "HeZvCFJYFiqD4vRwQ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-14 08:31:55"}
{"_id": "8B4LSeJsNRs8xo96Q", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | no Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "mExMNvXMrkJx79NRK", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 20:00:15"}
{"_id": "mQ8DeTmuaRn53bgqx", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-5-13 15:33:39"}
{"_id": "e7GM8f6Q4M7faHZAe", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f.link in Trash & f in Trash\n}", "derivationOf": "v9LHc9js2bgE6fENH", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:27:48"}
{"_id": "fNPSFWht2rALDnPEQ", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t : File  | some t.link_Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zgj864gA3i8DGca4M", "msg": "The name \"link_Trash\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 11:30:50"}
{"_id": "EZPhtwJHxGCk79Wf3", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EcAQzvbrc5oJ5Fm83", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 14:24:59"}
{"_id": "Pmzyq6XPsn4oPdxMQ", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tone File - Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Ks2jhbSBJYepgDiKX", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:29:22"}
{"_id": "C2tSBdoDRaiiMJhEp", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NaicC2vnvA3W3ctP2", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:44:59"}
{"_id": "Xo7qJY5tAvCGqcRdQ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vWyTn6x2u6ums5p9P", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:15:26"}
{"_id": "7CEqrZQy22S2SXGrC", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "e2Foi3pPnbeyJdu7d", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:22:59"}
{"_id": "TTD3gccqKLdHJ7Fjs", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no (link.f in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QrvxirGtkWQaAmYau", "msg": "This expression failed to be typechecked line 62, column 15, filename=/tmp/alloy_heredoc745411948559302057.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 22:49:30"}
{"_id": "cC22swHzYRK2sXrvT", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dJGShBxmSmj7SmQrD", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 21:05:50"}
{"_id": "ZmqeiouchR2Dqt5MB", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n  \tno Trash & Protected\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xN43gZG2XXcSi86jN", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:44:56"}
{"_id": "cthX3dgrYiRnRcSWT", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "w4bhYKPYXDW7HAerM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:20:31"}
{"_id": "nhaQX8Hi4CM39QMhv", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "ppgn9YH4ezpfBxPHB", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:35:54"}
{"_id": "HecryuP6xYEaF35tc", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f:File | no f.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash\n}", "derivationOf": "etnXrnBtkaTGw6GNj", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-24 23:45:31"}
{"_id": "25HsTiowHKqgqMRWx", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2DHM2m6hHc5EdBMLZ", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:21:06"}
{"_id": "zH7ZhRG52ZjLZqgkv", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Trash - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Y4bezW5ZZHr4ZMRd6", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:05:15"}
{"_id": "RZdGPZRHMQDMmnxEp", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone File.links\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "cF6kPAJ79DC6qLYEA", "msg": "The name \"links\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-18 17:53:18"}
{"_id": "N7r5bmzP3cquMsFou", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n    \n\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "EaFXvGDyn4yrKr2xg", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:24:51"}
{"_id": "cmQxDnrpb8aS9KSRP", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File - Protected) in Trash  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "B2vPHk8JBzZPyzCrX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:12:16"}
{"_id": "yGwtMsuWNBbpJP3dG", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link and f1!=f and f2!=f implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "7hWsz5TriTBWHsTaa", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:30:46"}
{"_id": "BJtu3JZz2TiC57EDf", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:22:54"}
{"_id": "excNem3vf7ZnNt4jJ", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t-link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gjujaNfPWTsSigMAx", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:49:28"}
{"_id": "wwwwZJF4G2nagkWss", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \tno Trash . link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "8pv32Mtfoto8XpWaL", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:03:52"}
{"_id": "Rn8viLG9qrZWdjefs", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tno Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RK27yGgncJetQMNcE", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-7 19:00:55"}
{"_id": "bvwz4rwAiQg6nMi8N", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "JnjdqKtcrNrCSDRWF", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:13:54"}
{"_id": "RJ8CMZqka7KbDMa2n", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all file: File | file.^link = file.*link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Z8SvXu5ftBXuDKtDY", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 12:25:36"}
{"_id": "kydapSriEnHzHdB25", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected.Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "K5RCLpFCgvB7GX94R", "msg": "This cannot be a legal relational join where\nleft hand side is this/Protected (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 18:34:48"}
{"_id": "PNrvekwC3AAA7jpY8", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  File = Trash\n  some Trash\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "B37qrYrAQ4m5HhHup", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 14:58:41"}
{"_id": "gkNtArJp2ycYfP7QX", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all f1,f2:File | not f1 in f1.link && not f2 in f2.link | disj [f1.link,f2.link]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RdnueyJFZniHm8gJT", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 17:13:43"}
{"_id": "hcuS42qpzjvQXyc4n", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7rFsMmygxYJXHRBuT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:32:23"}
{"_id": "HCdCQPMyB8fFiBvRE", "cmd_i": 8, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | f.link implies no link.f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\t\n}", "derivationOf": "xv4Q8b9oowjeumF7p", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:29:51"}
{"_id": "JfXN8hYKs3ubKYFt2", "cmd_i": 1, "code": "open util/ordering[Step]\n\nsig Stack {}\n\nsig Step {\n\tcharterer: Stack,\n\tviewer: Stack,\n\twebpage: Webpage,\n\taction: lone Action\n} {\n\tviewer = charterer\n}\n\nenum Webpage { overview, form, details_page }\nenum Action { click_create, provide_details }\n\nfact initial_state {\n\tfirst.webpage = overview\n}\n\nfact final_state {\n\tlast.webpage = details_page\n}\n\nfact create_voyage {\n\t\n\tfirst.action = click_create\n\t\n\tall s: Step {\n\t\tlet s2 = s.next {\t\t\n\t\t\t\n\t\t\ts.webpage = overview and s.action = click_create => \n\t\t\t\ts2.webpage = form and s2.action = provide_details\n\t\n\t\t\t\n\t\t\ts.webpage = form and s.action = provide_details =>\n\t\t\t\ts2.webpage = form and s2.action = click_create\n\t\n\t\t\t\n\t\t\ts.webpage = form and s.action = click_create =>\n\t\t\t\ts2.action = none and s2.webpage = details_page\n\t\t}\n\t}\n}\n\nfact authorization {\n\tall disj s, s2: Step |\n\t\ts.charterer = s2.charterer\n}\n\nassert visibility {\n\tno s: Step | s.viewer != first.viewer\n}\n\nassert lastPage {\n\tlast.webpage = details_page\n}\n\ncheck visibility for 10 but 5 Stack\nrun{}  for 4 but exactly 5 Stack", "derivationOf": "3qu3zQatXj4EJwPaC", "msg": "The name \"Trash\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-4-7 22:11:55"}
{"_id": "a4iMboJH98M2jfX8R", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f = Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aDCZBmskE8ofgvFxK", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 18:59:52"}
{"_id": "5bDi8QWswJnEEefir", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ATrZFeTGpXHjyrT7P", "msg": "This expression failed to be typechecked line 45, column 2, filename=/tmp/alloy_heredoc15989394204209094965.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:28:51"}
{"_id": "n8Jm8ZtAXmW3y6cab", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "boZECYMRmRb5NMrrx", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 18:40:09"}
{"_id": "7vfc2E6tzHK2cTdQs", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n not some f : Protected | f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LoQ7Z6buRNviyutw2", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:05:51"}
{"_id": "JofNScKun9GxsJRze", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \t\n  \tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | l in Trash => \n}", "derivationOf": "CrBijGifJm9mNE9o4", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-28 09:33:23"}
{"_id": "QrQBN6nWgQc4wMxCt", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n+\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jMDyJruqeircnrKhu", "msg": "There are 5 possible tokens that can appear here:\nenum fun let open pred", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:03:19"}
{"_id": "NrZCaDFdvGJAmMQTY", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { File.link -> Trash implies some File -> Trash\n}", "derivationOf": "DSZutJoSnEqHYSmG7", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-14 08:30:10"}
{"_id": "sKGXtTS7S7B8WS53r", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "pxx5Ee6ZXttKPBH95", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:43:44"}
{"_id": "Yp44d7a6xaC2hytTR", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tlink not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nrNJBzCS5zupi78ZR", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:40:31"}
{"_id": "Fwfj2BpjpBj2vxhF8", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {  \n   all file: File |  lone file.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  File.link.link = none  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : (f.link = one and f in Trash ) implies f.link in Trash   \n}", "derivationOf": "Pf2AgAEsqQXzQnJnw", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 18:26:48"}
{"_id": "Ru973h69DyrQhc2jn", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f = Protected - Trash\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6vTf5rGLsS7hgJRa4", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 22:53:34"}
{"_id": "hjPhsAfNaadfkMKuc", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NvnfiLkNisHXZb6Mx", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:28:08"}
{"_id": "Ykqitc7YJGpgAkLeQ", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  link.Trash :> Trash\n}", "derivationOf": "KSit8CggoBnwvnSSz", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:48:07"}
{"_id": "gqYfyQfNDf4LxZRkT", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File-Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CZ7LfCs5t4f78vTna", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 22:39:56"}
{"_id": "HumQoPrr3Gbgd3j9Z", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no(Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  no Protected in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vLrNvxDHQkMR3DFwA", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 23:37:31"}
{"_id": "r7fBacEpqct2nSfsK", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tLink.link & File in Trash\n}", "derivationOf": "kZ5AxamGCnMfwBhtK", "msg": "The name \"Link\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:51:11"}
{"_id": "tsjpXnS7nLyZoRBpH", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tnone link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "whQ2MPstxqPizTxTm", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{none}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:30:12"}
{"_id": "CAiA7r9yeKzWmKFB2", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile | Protected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZoCX734vZrLF4AhzY", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:38:09"}
{"_id": "Dd9KyYS7u5WM2qN7z", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xgtAXagyxdF3wC7o4", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 20:39:55"}
{"_id": "dipA8YzcmfPnP9qvh", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : link | f not in Trash\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f.link in Trash \n}", "derivationOf": "F4hi6NG6bHrFBRXfv", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-12-25 13:05:21"}
{"_id": "HBZsq7eaixjadpD3E", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | f1.link & no f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yNSwQ4Fvr29Ksz6x9", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:21:16"}
{"_id": "WrfnMfaorB9i6YdZG", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Trash - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oKd6YSSQwFt8FA9CA", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 22:59:10"}
{"_id": "DgXsZwQYkbJPied58", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f = Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \n}\n\n/* There are no links. */\npred inv8 {\n\tno link.Trash\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n} \n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "vBFha2eQzTByWzQzW", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 11:29:28"}
{"_id": "ivEmRtzedMHAMboit", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  lone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sWA2DXAvX6HRjhGAK", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:24:09"}
{"_id": "rypBZBpQKJSzsSd5H", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "guxsnt7gNpgT4TNx8", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-11 14:25:44"}
{"_id": "8Yd7d29ZSY6xLYaqc", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(not Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yN4S9aTfeaCh6fSay", "msg": "This expression failed to be typechecked line 50, column 3, filename=/tmp/alloy_heredoc16465094230499345551.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:36:41"}
{"_id": "FyjJJs4A7hMzx4yt3", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n Protected in Trash\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "iTHqjLnpjyrZLxRLH", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-13 17:54:30"}
{"_id": "jyL56NoSh2w69qnwf", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g: File | f->g in link implies no g.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "drtz8HePrbPtMopB7", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:41:51"}
{"_id": "XwbjofgYmA4LYGhKt", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred trashIsEmpty {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "h5c4YsN7H7x3pjdGr", "msg": "The name \"inv1\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-9-19 09:58:01"}
{"_id": "8NECsiMKR5ZMZYip5", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  \n  one File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xkfbrnF4fKELZmoFz", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:26:05"}
{"_id": "KpQZ4zJcA3TSmjnAv", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tFile = Trash + Protected\n  \tno Protected in Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rQeEEdsHvnyQEpkX8", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:10:36"}
{"_id": "BmTw4h2N5263T92uP", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f:File | no f.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link & Trash implies f in Trash\n}", "derivationOf": "AQcW7XiuaFsGqeTMC", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-24 23:44:17"}
{"_id": "EDEez7knN4YGzv5DK", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f1, f2 : File | no f1.link & f2.~link\n}", "derivationOf": "cTm8rDQo43rRF22gY", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:27:01"}
{"_id": "Ny2dniztJEBmgARZP", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.^link in Trash\n  \t\n}", "derivationOf": "4XCqhAQh4gzA6KSXM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-30 00:13:13"}
{"_id": "zr7uhsRhJNkAnFdRk", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1, f2 : link | f1 not in Trash\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f.link in Trash \n}", "derivationOf": "dipA8YzcmfPnP9qvh", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-12-25 13:05:39"}
{"_id": "RSJRboxbdCHS3JTFH", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \nall f:File | f.link implies  (f.link.link) not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EHcYCBoB3FMJe7zXg", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 23:43:17"}
{"_id": "9pmpPkiqhrM5LfzzZ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : Trash | no link.f\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6HPmWzLBkysrN4xpv", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:25:09"}
{"_id": "7mafimpgFhwFPsNGG", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile in Protected\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "R4uctSkS49bHXWbNa", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-11-14 01:16:47"}
{"_id": "Mw4eMsHxuGhSa3gnN", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iHThLqcqeJftw6kME", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 15:54:09"}
{"_id": "tPxtEKneCCumqTLbn", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f.^link in Trash and f in Trash\n}", "derivationOf": "mconoAGvZHe9Hydr2", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 14:39:07"}
{"_id": "KmtbkfRX3ayRv8MaL", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "NwMyRKB4rB7EmcGty", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 20:15:59"}
{"_id": "LdATsmZMRhurHKGAT", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Ffz6JJxpaGJ3JP7ye", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 01:13:13"}
{"_id": "8s8Rb2BgjbsMHgxqY", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tFile & (Trash -> univ)  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "K7ccCqe38TFvE4KWj", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->univ}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:32:14"}
{"_id": "2RXdXLFcqFpZhpn9A", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ityw7QaiFiGkWh2Pq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:49:19"}
{"_id": "ZYfmhycW8p57tquKi", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.^link  \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7is7biQXmTa4BEiCZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 12:15:32"}
{"_id": "eSEKw7tpumtPDZHNS", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   all f:File | f in  Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   not Protected in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all l1: File.link |   all l2: File.link | l2 & l1 = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fWs3T2adBhJLDTEHy", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 16:17:11"}
{"_id": "yKE858q49Sividhxb", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oxFdWHPL8EjCzbckx", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 16:51:26"}
{"_id": "TCoM3zTqnq6SHWjZx", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eaGMPeqABp5Bg4eQ4", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-13 16:41:28"}
{"_id": "YmwDoYS4nkmEeQb52", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no f: File | f.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f: File | \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "czYjPK9swLLRmMw3S", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:33:56"}
{"_id": "9b4HkjqbLfPzdL3xk", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t : Trash, f : File | link.t\n  \n}", "derivationOf": "E4kKxdznQxp943rde", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:44:36"}
{"_id": "3BxHHvaKyDEB4uhf4", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-8 15:02:34"}
{"_id": "K5WFKdGCvFCgyJxkM", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t : Trash | link.t & t\n  \n}", "derivationOf": "Z7Hd5G6SsesTjBtvL", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:46:13"}
{"_id": "bNXuA6d2gekg48g7j", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 19:19:54"}
{"_id": "cB8pKpmc3xwhTZaPS", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File - Protected) in Trash  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "T9yJyX9CdHQTJuBcz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:13:31"}
{"_id": "eML8P7CZeoic4GFn7", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tTrash = Trash - Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vcCeSLginaab9qcwM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:40:54"}
{"_id": "cryK7iJN3xkJJRTnb", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2tuyrJHPeh2s5sxBR", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:24:14"}
{"_id": "8r6AAEN7vZpdcENNy", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (Trash.link)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Rg8iYgmkRs7cFhMgg", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 19:39:15"}
{"_id": "dMWF6883GNcz7wKNc", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  File in Trash implies File.link in Trash\n\n}", "derivationOf": "MdA7DgY3Js3f4RmnZ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-15 00:41:42"}
{"_id": "tig2f8WQXMpQJ7g8F", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oXQSMGWFMxpjNxFjw", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-23 15:27:51"}
{"_id": "4e7j9eg5eZa94rsTq", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "eRritQgttQc36CHZb", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:32:10"}
{"_id": "Chh2uRZvaNdsJ8XND", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  \tlink.Trash implies ^link in Trash\n  \t\n}", "derivationOf": "SNMY5zPkk9dLPTtQW", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 20:43:07"}
{"_id": "hcRKHS4NjPcToWtuj", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1 : File | f->f1 in link => f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NtDjMoJerSMLxgiQT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 00:52:39"}
{"_id": "cT8zeqwwjf5CNW4QF", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone File.links\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "RZdGPZRHMQDMmnxEp", "msg": "The name \"links\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-18 20:16:47"}
{"_id": "xky9qfpXo3F8jh2r8", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "v9M9BZ7qrho3BSvZZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-30 18:18:23"}
{"_id": "ivbmgDABDsfRkForg", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \t\n \tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5coHFQEZPyxheCxp9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:35:39"}
{"_id": "roYyZxFuWEYK9gf5X", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   file in File | file.link -> lone file\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FNBPq9Pcmgu3cekGR", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 11:52:59"}
{"_id": "LiuXM29EqD8PKandW", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some link.f implies no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "Y3eHBbjYAWedWRYXB", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-13 16:52:52"}
{"_id": "kM9ivdnJpY998RpRg", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some File in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DLZ24dk9kvQTDtvLZ", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 15:05:15"}
{"_id": "jMSTxMpTDpgLypeNT", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  no File.Protected in Trash\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "rYGRHBXjLSnEoRgJt", "msg": "This cannot be a legal relational join where\nleft hand side is this/File (type = {this/File})\nright hand side is this/Protected (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-13 17:54:13"}
{"_id": "JNahoGSEhgBhkmpf9", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TR5tjCx49JJMakP9m", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-7 19:01:36"}
{"_id": "F7zE6kfPBEjHktBg4", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\t\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "sCaoWFHvhZe85zYYX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 17:12:27"}
{"_id": "CTeDeLnsnwBYJM8Aw", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hQWP4cE7pyGDY87ZR", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 14:50:08"}
{"_id": "xzG2eghyGYfKXgPeQ", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "JWmJJwid5JdvSQTby", "msg": "The name \"f\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:00:58"}
{"_id": "iipwzahuPMGuccfnc", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n    \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n  \t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.^link in Trash \n}", "derivationOf": "scgZhnBrgAwz4sDNv", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:42:25"}
{"_id": "z6mG2S7HQ9s5X9St4", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g: File | f->g in link implies no g.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link + f) in Trash implies f in Trash\n}", "derivationOf": "mzM4YKAmKg7L4J9X7", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:39:37"}
{"_id": "KuqkpRDXxkHhzGYxs", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some File in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iGHC8LfQiTwzPXuEA", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 15:05:53"}
{"_id": "zzyCwW23G3Y2piJNg", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in File-Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | f not in f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ur2vWmggkykgW8igY", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 21:53:19"}
{"_id": "4azo7HLE8rYNeDwsJ", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:Protected | none f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EGPytyJzxyropE8oQ", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{none}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 18:43:41"}
{"_id": "5XNfooc7xYHWfWMED", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tsome f: File | f.link in Trash implies link.f in Trash\n}", "derivationOf": "CARwmDEmeq5Kvc324", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 16:46:31"}
{"_id": "AxaA7D6d2PwG7f2WL", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Protected - Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FsgM8th8HXnbHXgEu", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:42:24"}
{"_id": "GjXvcacY9Cm5eorKh", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ouCqRRk5FaLKD67Qm", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-24 23:37:07"}
{"_id": "MWycmmkgqyjWaGFje", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n\t (no Protected) in Trash\n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "inSctb5NiM6WWniiL", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:32:12"}
{"_id": "Ln3svhoGFAQYTYWRx", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f = Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.Trash\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tsome link.Trash => ~link.Trash\n}", "derivationOf": "kjb2FTsrjoTnotZmB", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 11:28:35"}
{"_id": "hQnahizD9JsCX8GtQ", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  Trash = File\n  no Protected\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Wzg3nTXbSLshdMhhF", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:17:37"}
{"_id": "cXBYQwKSd88QwBLPL", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tFile = Protected\n  \tno Trash\n}\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fNqZdASvdgTYji2A3", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 22:31:27"}
{"_id": "qBdQKwkBTGgTgqsg6", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "68hJ5wY2d2ExK95yC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:26:30"}
{"_id": "2Q6av9efXB2FPqWdN", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "5gdBXy7m7rJz4pGHk", "msg": "The name \"f\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:34:21"}
{"_id": "toR7PPc7Hr68kcKAX", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected&Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File-Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vK3h2rHJJtw27eHb7", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 20:31:22"}
{"_id": "sTr4Gb3EvyFhQXDay", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t ~link . link in iden\n}\n\n\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f . link in Trash\n}", "derivationOf": "yaLxbgsfwJR8xWkn9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:53:17"}
{"_id": "6eWzL8Wwq3Ttsabot", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hjPhsAfNaadfkMKuc", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:28:31"}
{"_id": "4kNWCsyipYxdaXSMB", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1 : File | no link^.f1 & f1^.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HgRrc6TLbZQKkHqqQ", "msg": "There are 25 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all fun iden let lone no none one seq some sum this univ { ~", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:11:59"}
{"_id": "qjDh9PXShSkDbtDrz", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  (\tall f:File| f->f not in link )and( link.~link in iden )\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2SYXBd6ev3k5Gefuz", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 18:53:09"}
{"_id": "zRSJfENoiwthEuqGp", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Nnm9wvb4nw8WFSy3E", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-12-2 12:03:49"}
{"_id": "FEbcNfuBffeQQoT9d", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:Protected | no f&Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "97QX4XYwoWoErXpKe", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-22 18:50:21"}
{"_id": "TtLuGfTEbGhtwWa79", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1 -> f2 : link | f1 not in Trash\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f.link in Trash \n}", "derivationOf": "zr7uhsRhJNkAnFdRk", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-12-25 13:06:06"}
{"_id": "snPydEs2kYWDGm3pz", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "XFoNH6fwPuxFubKdg", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:56:32"}
{"_id": "kR38YnBQmzHCHaTtT", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.^link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZYfmhycW8p57tquKi", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 12:15:47"}
{"_id": "YS95xxgBzaHxm36Re", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2Sj3i7iC7AoXJESNQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:34:26"}
{"_id": "9dFyWQZ6REttWFBLG", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link & Trash)\n   \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | (f  in Trash) implies f.link in Trash\n}", "derivationOf": "sxTak8HjgrdD9Lsx2", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-18 17:35:30"}
{"_id": "SpwCeDwm7xRw9PpEX", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yGtDQnsps7st9tguS", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:17:36"}
{"_id": "i9YFEJtsbiEq925Gw", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n\npred inv7 {\n\tall f : Trash | no link.f\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f.link in Trash\n}", "derivationOf": "ETj9tq2wYNakE65sJ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:30:52"}
{"_id": "sNkHxHkLcau5gomRc", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "P7RuhPgufcmbDKPaB", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 14:45:57"}
{"_id": "dypX8hiA6S8jkqiv2", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 { some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tKGfJDGFCC22NrPkf", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 16:06:45"}
{"_id": "c98YGjAdp9pne6QPQ", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pXchgtFdgB62XCi3w", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-13 16:48:42"}
{"_id": "2temmLL5MAvj4fR2j", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f = Protected - Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aLsnx3zh7JSZkZg8C", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 22:48:33"}
{"_id": "YZRfkiHsvJQzTndm3", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tnot Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3ui9u9uf8mpZZwowG", "msg": "This expression failed to be typechecked line 50, column 2, filename=/tmp/alloy_heredoc15170561794257083429.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 18:41:17"}
{"_id": "JwhdGEGpMmjPkhWug", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5Qn4D9PbeEDNEbtey", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 11:14:43"}
{"_id": "RDihsXD8dvk7q9qqq", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xoy68B8MZYY8Bsqes", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 15:06:56"}
{"_id": "abm2Hq67Cb7wh99gR", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.File & File.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l,f : File | l->f in link and l in Trash implies f in Trash\n}", "derivationOf": "yA2TvZZ8kJx3Z9uJh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:58:23"}
{"_id": "ef9iqBmgA9a785RZC", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f: File | not f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f: File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | not f in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f1,f2,f3: File | f1->f2 in link && f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1,f2: File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f1,f2:File | not f1->f2 in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1,f2,f3: File | f1->f2 in link implies f2->f3 not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "y2BpXv4y3hJW9pXW3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-31 20:52:39"}
{"_id": "FtawZyNohHnFBJRYu", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tFile & (Trash x univ)  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3wsfyXzWJneCN42qJ", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:32:34"}
{"_id": "vEGiwBM6TuoKuHHbw", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  File in Trash =>  no File.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "YYXsFb28qrZAw4ik2", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:27:42"}
{"_id": "K5j33WBJbA4RHSdBD", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  link.f  implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XiaMB5vDWniZ9yk26", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 23:39:22"}
{"_id": "DHmERjquPdTyrsXFq", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t((File - Protected) & Trash) = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "A3SbG9z4zBdjBRJ23", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 19:41:56"}
{"_id": "3Xp9zqhsL9Qf4je3N", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all w : File | w in Protected implies w not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all w : File | w not in Protected implies w in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iWekmT6adfy6pg6yH", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:29:00"}
{"_id": "nRH7qmTQpxrX8guXm", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n all f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-21 13:11:32"}
{"_id": "PZsQazMhJk3ZBPXYG", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in File-Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | f not in ~(f.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3sGbknwaPjNgWCPep", "msg": "~ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 21:55:20"}
{"_id": "hQWP4cE7pyGDY87ZR", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xTgdSQNz3zTYiKkXR", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 14:49:58"}
{"_id": "xfAdkkohL9d4Z7joN", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFiles = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \t\n \tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Pb9Hd3SKx5QugBEdg", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-11-5 11:07:27"}
{"_id": "rrpWaaCcJgGCDSK8t", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n  \tFile\\Unprotect in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "oTnEafv3dSBZ4PLcm", "msg": "Syntax error at the \\ character. HEX: \\u5c)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:22:40"}
{"_id": "74RChAfSbQ2sxa3fh", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   none f:File :  f in Protected && f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all l1: File.link |   all l2: File.link | l2 & l1 = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ExR4R2fuKiK6qbTXm", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:19:37"}
{"_id": "Z3Y8nHaNy2xtEJP9B", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File-Protected | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "ASz73jKJMym8a3jDY", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:27:32"}
{"_id": "EHxFPmPuzSC9yvsFn", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "j7gJXBT6yy5WJPWPi", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 19:08:37"}
{"_id": "6h9Ha4yiiWATSzvRm", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "XHgnj8kwRPjev7ua9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-18 20:47:36"}
{"_id": "YsS59Rhnj9YFmRmG5", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File {\n  always(f in Protected implies f not in Trash)\n  } \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File {\n  \talways(f not in Protected implies f in Trash)\n  }\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f,a1,a2 : File |\n  f->a1 in link and f->a2 in link implies a1=a2\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f,l : File | f->l in link implies l not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  all f,l : File | f->l not in link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f,l1,l2 : File | f->l1 in link  implies l1->l2 not in link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f,b : File | (f->b in link and f in Trash) implies b in Trash\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 18:27:31"}
{"_id": "yCbMm3acArwBoAtN3", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JNahoGSEhgBhkmpf9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-7 19:25:17"}
{"_id": "ZrMso38WgputDntHQ", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t : File  | some t.link in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Nf6zHCKkFzmBPhb7X", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 11:30:30"}
{"_id": "jnYRpmfY8BvLbLCbJ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "4QzFSYCBnTLzu4qGb", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:08:22"}
{"_id": "QnBeouxyGtfb3KPm4", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1: File | all f2: File | no f2.link = f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "k5vingorGkqA3oAiE", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:32:13"}
{"_id": "hjmdpAn6NEJCCiNEw", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t-link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "excNem3vf7ZnNt4jJ", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:50:11"}
{"_id": "3tGLe3Rf6Y7GSGQTW", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   all f : File | f.link implies no Trash  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rgCKtZmgTGYEjkxEC", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:11:51"}
{"_id": "3tYN6c3m7TSg6aZkj", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:24:49"}
{"_id": "yAxF7xrpSTp2B4yNx", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | no (f.link & f) in Trash\n}", "derivationOf": "XqMbRAZ8NYmEQMQKK", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:33:35"}
{"_id": "PnjzZHtpkDNw8SKTN", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File | lone f.link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "ynqdJ4SnvFbgwuCFd", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:09:56"}
{"_id": "HRbKvfiCajiWLsLkL", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f = Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \n}\n\n/* There are no links. */\npred inv8 {\n\tno link.Trash\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tsome link.Trash => ~link.Trash\n}", "derivationOf": "WgDFXLxk3hDYBXQoj", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 11:28:51"}
{"_id": "bvSKqpFiotYs8dFiz", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone File.link\n \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9EXCgzqcJ98zJNssE", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 21:48:25"}
{"_id": "opGbqnhzgu8St8jFp", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f : File - Protected | f in Trash \n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f.link in Trash \n}", "derivationOf": "rFHhLkepkrcKCYiyf", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-25 13:11:02"}
{"_id": "APQ7D4bm7HDjCoNYd", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  no Protected \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DazyjJzz4kuopwHpd", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 14:56:47"}
{"_id": "9DfXRSyFSeMXRBMsf", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink.link not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dkfRvWm7vMJnbzBCZ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-4 15:03:40"}
{"_id": "f6nnYtuFm4SPhJcdA", "cmd_c": false, "cmd_i": 0, "cmd_n": "test", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\nrun test {inv4 and not inv4o}", "derivationOf": "wF5LrKJdx3EPvJCyL", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:32:09"}
{"_id": "ZCFG3oXvtkSXY9Mme", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n  \t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.^link in Trash \n}", "derivationOf": "Dbt3q9XBKBNMY2xQk", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:40:44"}
{"_id": "3wsfyXzWJneCN42qJ", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tFile & (Trash and univ)  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8s8Rb2BgjbsMHgxqY", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:32:31"}
{"_id": "vY4B9uvPCaWZLcLw8", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  Protected not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RDihsXD8dvk7q9qqq", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 15:07:23"}
{"_id": "yg5jN8SM6tgKPFKRP", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | all l : f.link | f in Trash implies l in Trash\n  \n}", "derivationOf": "fDY2agJMZoiGnrF7B", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:21:30"}
{"_id": "eaGMPeqABp5Bg4eQ4", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tProtected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bTrfYC3rYbpHsKwPi", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-13 16:40:43"}
{"_id": "SqSRshzAnTaxL3vob", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all f1,f2:File | not f1 in f1.link && not f2 in f2.link && not f1.link = f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gkNtArJp2ycYfP7QX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 17:16:54"}
{"_id": "Sr8Zvf8wPXqzwzpNG", "cmd_i": 0, "code": "sig Worker {}\nvar sig Prepared in Worker {}\nvar sig Committed in Prepared {}\nvar sig Aborted in Worker {}\n\nfact init { no Prepared and no Aborted }\n\npred finish[w: Worker]{\n\tw not in Prepared\n\tw not in Aborted\n\tPrepared' = Prepared + w\n\tCommitted' = Committed\n\tAborted' = Aborted\n}\n\npred abort[w: Worker]{\n\tw not in Aborted\n\tw not in Committed\n\tw in Prepared implies some Aborted\n\tPrepared' = Prepared - w\n\tCommitted' = Committed\n\tAborted' = Aborted + w\n}\n\npred commit[w: Worker]{\n\tw in Prepared - Committed\n\tno Aborted\n\tPrepared' = Prepared\n\tCommitted' = Committed + w\n\tAborted' = Aborted\n}\n\nfact transitions{\n\talways(\n\t\tsome w: Worker | finish[w] or commit[w] or abort[w]\n\t)\n}", "derivationOf": "GM3XoWgojesaSKag9", "msg": "The name \"Trash\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-15 10:49:15"}
{"_id": "aDCZBmskE8ofgvFxK", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f = Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mD6TwxpaPvsfhZLhX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 18:59:21"}
{"_id": "sxkZydENRrJzQcLZY", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "c65PDSgeuoSAxCtKw", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-30 18:34:44"}
{"_id": "pZ5dwHnzhnmYFdmdf", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tFile - Trash in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \tno Trash . link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "BsrhYTNapGzLkWB3H", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-18 17:45:53"}
{"_id": "bP5uNpjKP6i38Kiwp", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f . link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : Trash | no link . f\n}\n\n/* There are no links. */\npred inv8 {\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SiCJWKitFzThaMCRN", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:29:33"}
{"_id": "MyFv2NrvFmDtA8LBQ", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n\t-link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "e8y3dFyH3se4u5LwR", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:46:31"}
{"_id": "sxTak8HjgrdD9Lsx2", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link & Trash)\n   \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | (f  in Trash) implies f.link in Trash\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-18 17:35:28"}
{"_id": "exLyXjcZZhK66tBBG", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "acq4hgjaZrHRZvuuh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-18 17:43:59"}
{"_id": "FPkpw5mZt6NejJJBL", "cmd_i": 0, "code": "open util/ordering[Step]\n\nsig Stack {}\n\nsig Step {\n\tcharterer: Stack,\n\tviewer: Stack,\n\twebpage: Webpage,\n\taction: lone Action\n} {\n\tviewer = charterer\n}\n\nenum Webpage { overview, form, details_page }\nenum Action { click_create, provide_details }\n\nfact initial_state {\n\tfirst.webpage = overview\n}\n\nfact final_state {\n\tlast.webpage = details_page\n}\n\nfact create_voyage {\n\t\n\tfirst.action = click_create\n\t\n\tall s: Step {\n\t\tlet s' = s.next {\t\t\n\t\t\t\n\t\t\ts.webpage = overview and s.action = click_create => \n\t\t\t\ts'.webpage = form and s'.action = provide_details\n\t\n\t\t\t\n\t\t\ts.webpage = form and s.action = provide_details =>\n\t\t\t\ts'.webpage = form and s'.action = click_create\n\t\n\t\t\t\n\t\t\ts.webpage = form and s.action = click_create =>\n\t\t\t\ts'.action = none and s'.webpage = details_page\n\t\t}\n\t}\n}\n\nfact authorization {\n\tall disj s, s': Step |\n\t\ts.charterer = s'.charterer\n}\n\nassert visibility {\n\tno s: Step | s.viewer != first.viewer\n}\n\nassert lastPage {\n\tlast.webpage = details_page\n}\n\ncheck visibility for 10 but 5 Stack\nrun{}  for 4 but exactly 5 Stack", "derivationOf": "ScKmQ324WX9QyS2Tu", "msg": "There are 1 possible tokens that can appear here:\n=", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-4-7 22:11:10"}
{"_id": "wXwRTYfqNy5m6Ye8S", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "K37m3ukx2yCrjTEhr", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 23:21:36"}
{"_id": "Tq3hE2bjywaAxMbGo", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File |  f in Trash\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4yJz3wSyh4iRFPxYy", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:06:17"}
{"_id": "rZHF2uh7ye5i36bsC", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    all f:File | some f1,f2:File | (f->f1 in link and f->f2 in link) implies f1=f2\n}\n\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link implies f1 not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "wcpP5LA6qB9QN6CpW", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File0": {"x": 598.6666870117188, "y": 265.3333333333333}, "File1": {"x": 598.6666870117188, "y": 132.66666666666666}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-10-27 21:59:33"}
{"_id": "TvvG6T352GhYiumpz", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mbHXq36tqx32Yvtas", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-25 13:01:29"}
{"_id": "v26jQcYWb4iXtMuBZ", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink & Trash.link\n}", "derivationOf": "wsmGvTpgsaFFvmqjm", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:02:47"}
{"_id": "xAbAFZN8BkvA8cNck", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  file.^link = lone file\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TPfKicd5tuE3kuaTD", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:14:49"}
{"_id": "aSQMdwAxZH3bCtucM", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TvvG6T352GhYiumpz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-25 13:02:11"}
{"_id": "9aDJTphHXYHBzuty5", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "d9K9JYa4k4BAETvKd", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:34:49"}
{"_id": "PWvKGaRKAsBN5f9jK", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   not Protected in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all l1: File.link |   all l2: File.link | l2 & l1 = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6HuKnMk7vNLzfo6fN", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 16:16:35"}
{"_id": "QoED5FMqTsWsHyfAr", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | one f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TCoM3zTqnq6SHWjZx", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-13 16:43:47"}
{"_id": "Hj98qPNb3DNJhhuD6", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall f,g : File | f->g in link and g not in Trash\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-5-8 19:27:55"}
{"_id": "HPGcfp2k9rkmt9ux7", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3C6fJqXwoqC46PNKi", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 11:03:04"}
{"_id": "R23mdjrueXmzvhxWf", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "qNABB7WJycx6xRAve", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:34:29"}
{"_id": "LZHh7c5LA62h4Wihc", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "83wgW74hitztegZnB", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:34:09"}
{"_id": "trGLdCXXWj7FWk38x", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QGDLX6nfhkDX2Ypjx", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-4 14:59:18"}
{"_id": "LqSuDqBJheJ74cmaY", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5aK9EtuvHqi2LxGDa", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:30:02"}
{"_id": "PB9qPuKABz7e7mbTd", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File \n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected  in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no File.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { some File.link -> Trash implies some File -> Trash\n}", "derivationOf": "jGzYc3WCTnijXFNkJ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 08:41:59"}
{"_id": "3ui9u9uf8mpZZwowG", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kydapSriEnHzHdB25", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-22 18:38:19"}
{"_id": "obrgt4uY5BBRW4dbd", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link . link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  link.Trash :> Trash\n}", "derivationOf": "cH9EyP47fp2iDHrEm", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:02:34"}
{"_id": "gaDD4qAh3MLGczTGX", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Trash :> Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BMKwZQ3okaiFpGMpJ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:53:28"}
{"_id": "MBrPKE2MpbfexQFky", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink.link in iden\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "57WQt5EsastSsPjjn", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:19:05"}
{"_id": "mt6zPoFWiSgvY8dtB", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "quGb6a4SR3cT8edBj", "msg": "The name \"f\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:35:25"}
{"_id": "eLwhBgE3eHCBk7qfS", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vx5ut6jnGm25rNQcn", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-11-14 00:14:06"}
{"_id": "nZEL3GSwL5M7WkL7e", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "psD3MMJwMMQFYZveg", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:22:43"}
{"_id": "WfG34mKAfvkzMdW3c", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "wCTPjjpp8p2jXZHmb", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:26:44"}
{"_id": "8A2XtAymX2TDexgr2", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.File\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8ZRkrm7RowXcDurBA", "msg": "This cannot be a legal relational join where\nleft hand side is f (type = {this/File})\nright hand side is this/File (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:42:03"}
{"_id": "ezW37nPZLi5vfmTzo", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "HcQgLwmc3eMGjan92", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-21 18:28:28"}
{"_id": "fyLuvjg3ctgPuRKb2", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected and Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KKigA46hxB3PXDCzr", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:29:09"}
{"_id": "ynqdJ4SnvFbgwuCFd", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File | lone f.link implies not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "ZuJAcsa92Su6nfw5R", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:09:45"}
{"_id": "Gue2vtjznEsnLNBhP", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "R7qKhtvQDkeYhm33m", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-30 18:12:14"}
{"_id": "5LRbnEp2veC3k23Hk", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-11-3 18:09:31"}
{"_id": "WRnJbxwSEoE7kkHxw", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "69F9QbRAyDNJq32tn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 23:27:39"}
{"_id": "YYXsFb28qrZAw4ik2", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "Md5gMNTQxBrkY8HKX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:27:04"}
{"_id": "sq3GFq6WHs5pA2QYm", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n    /* A file is potentially a link to other files. */\n  link : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (link.Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | (f in Trash) implies f.link in Trash  \n}", "derivationOf": "gYduSjKbMYDM7A8be", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:28:32"}
{"_id": "Qm2zn5QeiZj3NwY6Y", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tFile in Trash\n}", "derivationOf": "timqFRt7ovspHhnd5", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:52:09"}
{"_id": "ynmMrZ68g9jKpE9H5", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n   not Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n  all f:File | lone f.link\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WTguk3qXvE6j8kwBf", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:44:41"}
{"_id": "EHcYCBoB3FMJe7zXg", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\nall f:File | f.link implies no (f.link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CCGBuotqwzebfgtr8", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 23:43:01"}
{"_id": "mRoEnMLLBWyMLtAzM", "cmd_i": 3, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  Protected =  ~ Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "QrsPTFJCPjnKP6bF6", "msg": "~ can be used only with a binary relation.\nInstead, its possible type(s) are:\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 20:03:58"}
{"_id": "FcY63xP8xbSESSds9", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9WNLJ3oj9jELw5t5R", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:25:37"}
{"_id": "hMQeMmnqd46cMYkdF", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-4-7 22:10:03"}
{"_id": "Wa2YagynsMdmkBXRJ", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  (link.link) & Trash = link.link\n}", "derivationOf": "gLknsg4Ki32Py9rnb", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:49:58"}
{"_id": "yNSwQ4Fvr29Ksz6x9", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | f1.link - f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JNhShbJ7Eo5r84Y8b", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:18:27"}
{"_id": "9ftjeuwMWxt4wGfNR", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f: File | f in Trash\n}\n\nrun{}\n/* All files are deleted. */\npred inv2 {\n  \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "m5x3yTZgkL9SgACTR", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-31 19:54:26"}
{"_id": "ah2TD7akgWkGgZ6KH", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  Trash.link.link\n}", "derivationOf": "NJXKa8HhnGELrCwLh", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 19:48:33"}
{"_id": "b2RZnyPqvqPvC5qfg", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Ks9shtKGYimTjqdjE", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 22:56:40"}
{"_id": "kFauZFAmuNvDs4PvY", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   \n   all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "r4weoiPXKdDkZQQ2b", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:38:45"}
{"_id": "opYpC472ZgRda4czm", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  Trash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ykZomwiP9yCi2ZDEm", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 20:17:34"}
{"_id": "mz3awtsjSwXLxkCG8", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \nall f:File |  f.link implies ((f.link).link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bFtdZ2a5nhTySiZNw", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 23:49:03"}
{"_id": "p3RWMqXpgA5eaijHJ", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DEYeZxZm4eiF5mtgu", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-8 02:32:09"}
{"_id": "pBJK7vtat5GivsfHz", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all file in File : lone file.link \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6NzgNTGE36GvPQuhc", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 11:50:48"}
{"_id": "hEaZ3oGqShXifbk3q", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LznaxFjGpnQpeCJaH", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:24:15"}
{"_id": "umqicwT3gNx3xKHvN", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t : File  | some t.link\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { all t: Protected | t not in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f: File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link.Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wvRqZejp4fqHJbDet", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 12:22:44"}
{"_id": "u8P5AjznZhESAbsct", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { link.File -> File.Trash \n}", "derivationOf": "KABvkWw7TtqigxGDF", "msg": "This cannot be a legal relational join where\nleft hand side is this/File (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-13 22:25:18"}
{"_id": "deSYdWSKiZ4MaEKrW", "cmd_i": 8, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | f.link implies no link.(f.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\t\n}", "derivationOf": "rBSvuEdH6x7vMbSv3", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:31:25"}
{"_id": "5XWJwG6whShCuK9db", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YhnMMJkgzzsA8G7qi", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-31 19:53:04"}
{"_id": "tbnv7HeNKKvDMdokb", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected no in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ePCm9R3cow2xgyS47", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:24:55"}
{"_id": "PurHFcbnMtyCktnwt", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected & f not in Trash)\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nsrCPeBaApHRDiRhv", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 22:30:21"}
{"_id": "gFCvqsbDzKvP8PPSv", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JBEYcG87WzmF3ZHac", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:26:35"}
{"_id": "ewjfuhes8GtMdLYq2", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xcsDpkW5tDMBZTtBZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 21:42:55"}
{"_id": "7hWsz5TriTBWHsTaa", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link and f1!=f implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "GbgqfMcJmgPD93pHv", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:30:04"}
{"_id": "gLknsg4Ki32Py9rnb", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  link.link & Trash = link.link\n}", "derivationOf": "Ykqitc7YJGpgAkLeQ", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:49:47"}
{"_id": "QmGDzRPYxuxsdxgtY", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f+.link in Trash\n}", "derivationOf": "Kn93bZAWpJNvyEjLe", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 16:45:28"}
{"_id": "7JZ2zMgi2SEtkb7ij", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "GA63y94yfx6K6X2xB", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 20:12:29"}
{"_id": "ZR5tt4giewQzHPZKZ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  some File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vRz3tZvsBb5nH6YAs", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:01:31"}
{"_id": "K2tK5GAHt3EZHg6nG", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t : File | some t.Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "K5KbvJMGBbbbuRF2Z", "msg": "This cannot be a legal relational join where\nleft hand side is t (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 11:20:20"}
{"_id": "ggbRwzaAqs5H4fbJB", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall l:link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DdRLs64SaA7AzcdTb", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-27 21:18:59"}
{"_id": "SAfX5JpWoiAFBqP8E", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n   \n\t\n  all f,f1,f2 : File | f->f1 + f->f2 in link implies f1=f2\n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n   \n\n\n  \n  \n  \n  File.link not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "3Y7jKjiiAq6vDBNug", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-12 17:30:36"}
{"_id": "GHFNNdDnwPuWBT2Qj", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | some f.link  implies (f.link not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.^link in Trash\n  \t\n}", "derivationOf": "znjehACwEzfvzH8q2", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-30 00:09:26"}
{"_id": "mcZtG4nJpGdARhGWZ", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zTHihDmJGKhbzdKPR", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:39:25"}
{"_id": "3b9AiL4ceoENxoAyD", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sLi59mXz92M2aWBwW", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 16:55:04"}
{"_id": "m4SdwJhH27Hz2o3SL", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link & Trash.File.link\n}", "derivationOf": "oEjERnRP6xjx7DYix", "msg": "This cannot be a legal relational join where\nleft hand side is this/Trash (type = {this/File})\nright hand side is this/File (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:02:17"}
{"_id": "HWYPyC9jCPYLuudrK", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  File not in Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 18:32:42"}
{"_id": "qyuETQbBYiYotxS9C", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile : Protected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ijbyycKFuDdkyHGHM", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:34:34"}
{"_id": "2BomMGGMxsxdskwBu", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f: File | not f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f: File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | not f in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZkFthx9bh2XLHCex8", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-31 20:41:13"}
{"_id": "yRj4vKG8PWQ6KBs4G", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dYCr8jdbYNHpb4cZt", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-4 15:02:23"}
{"_id": "w4bhYKPYXDW7HAerM", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zSmQLaHh4gG5nA55D", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:19:44"}
{"_id": "AZyJwkzXaDsSk3j2b", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  (Trash <: link) => (link :> Trash)\n}", "derivationOf": "cYFHCHJ46SRsKuNWT", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:51:31"}
{"_id": "rD4HuDkuMxHjxMigy", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  File = Trash & no Protected\n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "A5MLXxHmKciEtZ3LZ", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:49:54"}
{"_id": "NwMyRKB4rB7EmcGty", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (File . File.link)\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "wTTwNvcX2pZb2wnq9", "msg": "This cannot be a legal relational join where\nleft hand side is this/File (type = {this/File})\nright hand side is this/File (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:15:21"}
{"_id": "uajatq2iARWY5fDyg", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6eWzL8Wwq3Ttsabot", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:29:11"}
{"_id": "AfYMnzNnuijBKK48m", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "btY8WvZniPL95ZfoT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:34:47"}
{"_id": "3auE2tmRiQW6h9EbS", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  link.~link in iden\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : Trash | f.link in Trash\n}", "derivationOf": "8awq4q3jkDLHpm4XT", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:48:39"}
{"_id": "DoNZDt9F36hcJSLxo", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f->link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | f->link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f->link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8KwdsenrG76GHK4ab", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-22 10:38:49"}
{"_id": "FNtNm3DJptHhwjJnL", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rkB4AQjwX9RjAYsbD", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:10:03"}
{"_id": "mTwSQBuS9stQdh6tS", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EMt9gf3xEoqturWEN", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:02:45"}
{"_id": "uNC7ZdWpC3sAmX9s8", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.^link in Trash\n  \t\n}", "derivationOf": "Yg3cYqfAPeqtahtE8", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-30 00:11:30"}
{"_id": "Fq4dMqRscwCqLAHJ5", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "j7MkxXmsjXpSNiRH9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:59:57"}
{"_id": "B2vPHk8JBzZPyzCrX", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File - Protected) in Trash  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "kwkkBq7yXtCD4wka7", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:12:13"}
{"_id": "Ljti6pAiXzPcSqM4J", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NrAgkqavniH6nT2ox", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 23:18:37"}
{"_id": "osecxsmdocg4x3tqn", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YRexEzfbeXnJf6PY3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:13:49"}
{"_id": "xgtAXagyxdF3wC7o4", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vWuhQ6xoZM9djeers", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 20:39:23"}
{"_id": "m6NzaAHFjmJnEs8a6", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yKBiayLmMpQ3Cky8f", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-10 18:00:12"}
{"_id": "bPSESoWZovmLnC84t", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 { some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dypX8hiA6S8jkqiv2", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 16:08:05"}
{"_id": "iiJ5RQWfasApKNXNQ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 17:10:10"}
{"_id": "9FEkD7EDdNfDyhxKm", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3WJeffnH3xkhRFt3L", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:24:57"}
{"_id": "sJozEkDGGvk5eKQiS", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f2,f3:File | f-> f2 in link and f->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,f2:File | f->f2 in link implies f+f2 not in Trash\t\n}\n\n/* There are no links. */\npred inv8 {\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall disj f,f2,f3:File | f->f2 in link implies f2->f3 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "P2HPdezW6PBeZNCgq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-6-15 20:32:06"}
{"_id": "P7JyYaSzB8CP8zEtq", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xKT7qx2tLytQrirwD", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:23:33"}
{"_id": "GELYwHXEHKZoG5aEW", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "The name \"trash\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2021-1-13 16:35:51"}
{"_id": "u7LSsSEgB4Msu9H7h", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   all t : Trash, f : File | no t.link + no f.link\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dymupicYrmbJXq5mk", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:16:12"}
{"_id": "juwxJEhqMHPsu7vxG", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no link.f1 & f1.f2\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "s5eFuMbhqZYYzoZ3y", "msg": "This cannot be a legal relational join where\nleft hand side is f1 (type = {this/File})\nright hand side is f2 (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:11:04"}
{"_id": "W5MGaeTxZqiHHBdNi", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Pbvb8hQTN4884SzBv", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:26:55"}
{"_id": "iHPgeTi3kLkdpvvwn", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { Protected no-> Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "A8HucFqFtx7iB3gvw", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-13 19:01:30"}
{"_id": "rHXFXYhQkeL6eo4uz", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n not some f : Protected | f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  all f: File | no f.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f: File | f.link in Trash implies f in Trash or f in Protected\n\n}", "derivationOf": "bMFL56dnt5P8b6g8z", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:18:57"}
{"_id": "tj3xoebSCNtjJSccj", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NuBNeWfCK9ehermSN", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 17:58:45"}
{"_id": "pXchgtFdgB62XCi3w", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mW7N48NwX3MDqkz8D", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-13 16:47:38"}
{"_id": "GzFQ9sza38dMh56pJ", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7WmhGNoR6FTdWgdzD", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 17:10:25"}
{"_id": "Y9CTx7P6hBfFmco6b", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "aTRXzR32unDEtiRRG", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 01:09:38"}
{"_id": "uJffDxYuNd8cLLJcx", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (Trash.link)\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "b3HMYYfwgT4vLaxnn", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 20:45:30"}
{"_id": "e5Fd7fvS3b66q7nFS", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile.link in Protected\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no (f.link).link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rj4vNk4bpbZHpSXqZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-14 01:25:53"}
{"_id": "GWAWWWmzReFT4nKLv", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Trash - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kjmT5k9NczNWqDw9q", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 20:33:11"}
{"_id": "fZZnczmPK4wnWBoQ4", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "FdnYKcKmDWC7rKKth", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-26 02:34:23"}
{"_id": "Fx5QyhhxsCwfv8d2E", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  Trash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "r8X58w2GdbB7h5pZP", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:33:14"}
{"_id": "xgZHtr7yoYyrCs5AB", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \tall l : File.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MSTjgFHCJn4qy38RE", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-28 09:27:14"}
{"_id": "E4kKxdznQxp943rde", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t : Trash, f : File | no link.t \n  \n}", "derivationOf": "98hHDXd22GFCW9xHK", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 16:44:14"}
{"_id": "hQuG72RxDPP5FgEPj", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Zh5RK8YDfyHqRK84d", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:32:31"}
{"_id": "wTTwNvcX2pZb2wnq9", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (File . File.link)\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "g7ZZqk6fwLPsSNpQT", "msg": "This cannot be a legal relational join where\nleft hand side is this/File (type = {this/File})\nright hand side is this/File (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:15:06"}
{"_id": "n6JK37qKFnqam7BHh", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "exLyXjcZZhK66tBBG", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-18 17:44:07"}
{"_id": "nDSjedtJjw2EMg9nb", "cmd_i": 8, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | f.link \n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\t\n}", "derivationOf": "uTftqSPRnyzEd6rSc", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:32:28"}
{"_id": "7bKTpqEBqdhp6nqSq", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tFile.link & Trash => File in Trash\n}", "derivationOf": "k3sNRnWwH38q66mQH", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 01:16:52"}
{"_id": "xjoHSh8MzFxF6xfiq", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File - Protected | f in Trash\n  no f:Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.File & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XHN2PuKpiTTYWGk2H", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-10 18:06:15"}
{"_id": "irTaWvMcFh9ZbM3fu", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File | no f.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "DbccMxJQNso5uB74z", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:53:06"}
{"_id": "aqL5wbJJctSL9ALHb", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GzFQ9sza38dMh56pJ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 17:10:43"}
{"_id": "iL4rGJeXabmzRyRR9", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { File.Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BQEQEz8YPE2ba9Ha6", "msg": "This cannot be a legal relational join where\nleft hand side is this/File (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-13 18:51:57"}
{"_id": "ShGg9wc7pTTGKSeka", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-5-20 20:24:15"}
{"_id": "t8qHQkN7zCPPLY9xN", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BhFkcHBiWhtMMKzgs", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:11:03"}
{"_id": "gFrsb85or5GW4MQ5C", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GWAWWWmzReFT4nKLv", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 20:34:57"}
{"_id": "rZMTHi3vqZk4mXh9X", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "csSoo6P3q2JB5C2qc", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:38:28"}
{"_id": "QZAvGNCEu4rau6XTb", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ker5icYe6iz7YmH9p", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 18:44:49"}
{"_id": "hDksmL6PWrqfopdN4", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n    \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n  \t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.^link in Trash \n}", "derivationOf": "LZHANam9x78jFZLY9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:42:31"}
{"_id": "ACbWNXB2DnBHrzSoh", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "x84JFFjcKjbyw63kC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:34:37"}
{"_id": "BsmD33b2hR27BDn4C", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZjiYN7zKX6CPRanyX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:33:28"}
{"_id": "FKeYWwhxCSMEqMRFm", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "vofSQ8qrCQ2EYHeRS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:14:12"}
{"_id": "5PwdsniGNPHYFETpq", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link :> Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  Trash <: link implies link :> Trash\n}", "derivationOf": "exPiy2HLbai7Atvtk", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:25:55"}
{"_id": "8BXqActrW6QWGR6wW", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "W57HmB7MoZ4kywztm", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:43:48"}
{"_id": "5pqRdsyNvc3AqDh2M", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tFile.link in Trash\t\n}\n\n\n\n", "derivationOf": "drmM9wZSioyQHgYZ9", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-18 20:50:24"}
{"_id": "GxiLRt2HsgQi3Ro43", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "42r8ajL5NpmC7Czwp", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 00:51:40"}
{"_id": "k5vingorGkqA3oAiE", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1: File | all f2: File | no f2.link in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9HsSSZ287YaRDSkX7", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:30:22"}
{"_id": "PHwighXPhhFE5xS4x", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-8 02:27:16"}
{"_id": "rQeEEdsHvnyQEpkX8", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tFile = Trash + Protected\n  \tno Protected in Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zLqatEnhy95jDNwhG", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:10:31"}
{"_id": "h8GaTrtyLbdLeLMuC", "cmd_i": 6, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | link.f in (File - link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\t\n}", "derivationOf": "2LX3w5B4RzvNHmB69", "msg": "- can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:23:24"}
{"_id": "gRvvTmhC2BvcutBDs", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    all f:File | some f1,f2:File | (f->f1 in link and f->f2 in link) implies f1=f2 or f=f1 or f=f2 \n}\n\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link implies f1 not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "uiACiovBdRfKgsKeA", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:43:21"}
{"_id": "vWuhQ6xoZM9djeers", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (link in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "93YdoRPsjXrZFHvHC", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 20:37:21"}
{"_id": "MtLYczHijQNsySqPC", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:06:09"}
{"_id": "LAueSLqoHToPg8cex", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "RHwSKJDSnEDwnatgb", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-18 17:51:06"}
{"_id": "YrGgt9CiqceTa84Xz", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f.Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uWNacZcanRnmHAkQi", "msg": "This cannot be a legal relational join where\nleft hand side is f (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 18:35:40"}
{"_id": "DQnb9CLk7mDvXMWbm", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile=Protected+Trash\n  \tno File & Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "APQ7D4bm7HDjCoNYd", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 14:59:04"}
{"_id": "F5xf6SupGiFWLdeEj", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link && Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "There are 1 possible tokens that can appear here:\n)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-9-26 02:31:57"}
{"_id": "hfyx9DuybwMpYjZk3", "cmd_i": 3, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  Protected = no Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "q7ns6TnGEvrCHrBJP", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 20:02:50"}
{"_id": "G3wKGXKERYh7XdX6i", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 { all link | no link.link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "B2YC9YKy355Hm2xqx", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:07:59"}
{"_id": "w8N8uhGg5hMQT5HQY", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t : File  | some t.link\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { all t: Protected | t not in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f: File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "M5x6KzE2ASNRPZDw8", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 11:58:38"}
{"_id": "GmPvL2QGkKNuaGiMG", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eqKX2DAGjsx8C68Qm", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-8-13 17:33:58"}
{"_id": "fSWYTGrpBdkvQdbv5", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f,f':File |  f.link & f'.link = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wCBbfaQGbqZse2pra", "msg": "There are 1 possible tokens that can appear here:\n[", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:24:49"}
{"_id": "3pD524ZT9YhmFS55j", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  Trash = no Protected\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mXnti2Jt97cwqCyQj", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:20:10"}
{"_id": "QMNM5PrZ6frBamSvP", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link :> Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  (Trash <: link) implies (link :> Trash)\n}", "derivationOf": "5PwdsniGNPHYFETpq", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:26:08"}
{"_id": "y6dEJSYnt9X34KJ8n", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n   not Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n  all f:File | lone f.link\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oTGJTYXNR6SptLc4g", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:42:22"}
{"_id": "NHoCHcXBzeyTceCY6", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  File.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hhzhDg3ud638RkJbr", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:29:35"}
{"_id": "J2GkDb8KJwrGZzdgz", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FSH2ZCyk45prxHYt9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-14 00:10:08"}
{"_id": "tPSzq6bSF9pXghs57", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yCbMm3acArwBoAtN3", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-7 19:31:24"}
{"_id": "ocQvP2ZPx5YnHN92P", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "t8qHQkN7zCPPLY9xN", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:12:25"}
{"_id": "ihnx74wZmSCHkbXxs", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "fhnE8CejLSJbjc3Zm", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:17:05"}
{"_id": "csSoo6P3q2JB5C2qc", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tinv5o\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yz3nLiu7e4R5at9up", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:34:53"}
{"_id": "APiYyF4KWv8r5eLoL", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash <: File\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tFile = File \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\n\npred inv10 {\n}", "derivationOf": "vcHeChNH5szruGJdc", "msg": "== is redundant, because the left and right expressions always have the same value.\nLeft type = {this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:27:18"}
{"_id": "rcoaeMbA6o8Ks3Foz", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9FEkD7EDdNfDyhxKm", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:25:23"}
{"_id": "tWDgtuJoLBLSFCJtK", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File-Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File-Trash | lone f.link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "A5pyMaETc4ygrE3df", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-12 22:38:05"}
{"_id": "vnZBgg65ZqPXqvfB3", "cmd_i": 2, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  Protected = no Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "FSxqTmHwCLA9dffiu", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 20:02:06"}
{"_id": "K37m3ukx2yCrjTEhr", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 23:20:21"}
{"_id": "PFE4cGhid7bTjStrt", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all f1,f2:File | f1 & f1.link = none  f2 & f2.link = none && not f1.link = f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tMsmEQiPQiWiuREQ9", "msg": "The name \"f2\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 17:29:13"}
{"_id": "oGge6orkethw9BatW", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n  \tno Trash & Protected\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rxMC4MaysuJ9oSSjB", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:42:46"}
{"_id": "TRCyeMS9rv5QAwhCz", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\t\n  lone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ttvRdH6mdSYrYbveG", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-12 17:05:49"}
{"_id": "yaiW957WgFTwCaEbK", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nbTS4s9B2P72g7h4v", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:26:29"}
{"_id": "eSGq6zh4HSGuiB2rN", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f.link in Trash -> f in Trash\n}", "derivationOf": "bwotB2wWFuGH84ozi", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:30:21"}
{"_id": "Ks2jhbSBJYepgDiKX", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File - Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YyJZmBEZukLuAAdJp", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:29:13"}
{"_id": "rkB4AQjwX9RjAYsbD", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JqbX4doTbCtwAcQdr", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:08:43"}
{"_id": "3acfSFEocDtLC9GCZ", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFiles in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aX6kk3sfxqBf7Q6mM", "msg": "The name \"Files\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-2 14:45:04"}
{"_id": "9Ra3pM3GJ9bhPJ3Mm", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vm6WmKtWHa6WDrWB3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 16:53:43"}
{"_id": "Md5gMNTQxBrkY8HKX", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "TyZooAZqLGP8SFF4o", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:26:51"}
{"_id": "be7GNpFh2btNTEpxw", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  Trash.link in Trash\n}", "derivationOf": "B2asX7sxK4Arpa22z", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:36:13"}
{"_id": "uYYXkjzCBGsL7bLAL", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f2,f3:File | f-> f2 in link and f->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,f2:File | f->f2 in link implies f not in Trash\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KwJDowkGh9frXbEB4", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-6-15 19:46:51"}
{"_id": "EtC8aKaLbSnPp9gBf", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \tFile & Protected in Trash \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "4zQaHiCt3YpHejftj", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 10:07:29"}
{"_id": "yNTRcm3GGS79HwPDe", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { Protected -> no Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iHPgeTi3kLkdpvvwn", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-13 19:01:44"}
{"_id": "PMdrf5JTrAJ7AQ8uv", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tone Trash - Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "a7DmDtZNsMGtGKLHt", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:40:20"}
{"_id": "a3FSjujpzjwNcbx6p", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  all f : File | f in Trash\n\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-19 21:40:07"}
{"_id": "PcBGLQMfXxBCqenBJ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no f.link - Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vdZPSTTYbuPzNZacH", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:08:12"}
{"_id": "86iup2qwYzBDMe9Nv", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | not f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:23:37"}
{"_id": "hr6v6dJWCWho4ESGk", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash -> Protected\n}\n\n\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8BXqActrW6QWGR6wW", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:45:06"}
{"_id": "yTANiZcGqK2kEgdfN", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vqkz3BZ96RSbF5eFK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:15:28"}
{"_id": "Zvi8rKmBLp6DRT23w", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash.link = {}\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/File}\nRight type = {PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-7-13 12:30:31"}
{"_id": "KK3BHyGgtYabn7MiC", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EE5Qgb3gTkY6mumbR", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-6-15 19:40:38"}
{"_id": "XiaMB5vDWniZ9yk26", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  link.f  implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GPSn9SvZtiZmyXEM6", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 23:38:39"}
{"_id": "3pfv9eoWYJw2WYECj", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n}\n\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hwow6naEarXSWetEP", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:28:26"}
{"_id": "veBNrBJw4noWd6Ecg", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  some f : File | lone link :> f\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Z4m8n7AcLKiDkRwFe", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:22:53"}
{"_id": "AES3kCZYa8WqSW57y", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nJTSTo7MSickMxjva", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:51:30"}
{"_id": "LoebLx6LHA2SEuR8H", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tAll f : File | some f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GeeRPwpaf7GbGgP6p", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-12 17:03:55"}
{"_id": "w3xGNwJP7Ymnz8auQ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - (Protected - Trash)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f.link in Trash \n}", "derivationOf": "tgKyrPZo3NC6piWHy", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 15:14:16"}
{"_id": "HLz3XYNkPkNF2hpsZ", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  lone link.(some File)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ADDToX4283Q2PnHKN", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:23:26"}
{"_id": "AQcW7XiuaFsGqeTMC", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f:File | no f.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zNcr2MN9Y469qvrDN", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-24 23:43:43"}
{"_id": "P97cCak84yRAyPN5L", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash + Protected\n  no Protected\n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jM63wtkp9KMeTugPJ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 14:57:03"}
{"_id": "8ea3qQ7tHcHTnWS3E", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all Protected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XFDoBYv3A45DCQqJg", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:10:57"}
{"_id": "ScKmQ324WX9QyS2Tu", "cmd_i": 2, "code": "open util/ordering[Step]\n\nsig Stack {}\n\nsig Step {\n\tcharterer: Stack,\n\tviewer: Stack,\n\twebpage: Webpage,\n\taction: lone Action\n} {\n\tviewer = charterer\n}\n\nenum Webpage { overview, form, details_page }\nenum Action { click_create, provide_details }\n\nfact initial_state {\n\tfirst.webpage = overview\n}\n\nfact final_state {\n\tlast.webpage = details_page\n}\n\nfact create_voyage {\n\t\n\tfirst.action = click_create\n\t\n\tall s: Step {\n\t\tlet s' = s.next {\t\t\n\t\t\t\n\t\t\ts.webpage = overview and s.action = click_create => \n\t\t\t\ts'.webpage = form and s'.action = provide_details\n\t\n\t\t\t\n\t\t\ts.webpage = form and s.action = provide_details =>\n\t\t\t\ts'.webpage = form and s'.action = click_create\n\t\n\t\t\t\n\t\t\ts.webpage = form and s.action = click_create =>\n\t\t\t\ts'.action = none and s'.webpage = details_page\n\t\t}\n\t}\n}\n\nfact authorization {\n\tall disj s, s': Step |\n\t\ts.charterer = s'.charterer\n}\n\nassert visibility {\n\tno s: Step | s.viewer != first.viewer\n}\n\nassert lastPage {\n\tlast.webpage = details_page\n}\n\ncheck visibility for 10 but 5 Stack\nrun{}  for 4 but exactly 5 Stack", "derivationOf": "bLFJmR4EW4A68vLsf", "msg": "There are 1 possible tokens that can appear here:\n=", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-4-7 22:10:56"}
{"_id": "pCGpjAtgz2BRGc5cr", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4RDRtdcBwuyz5kpX4", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 01:04:01"}
{"_id": "LoQ7Z6buRNviyutw2", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n not some f : Protected | f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "g397vyDy3e3mFEy94", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:04:00"}
{"_id": "6RFWtXsjdqmQsams5", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  all Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "P6J8gqQPkM9euT2Wm", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:13:49"}
{"_id": "C4KmMH7TQKQJEa4Qq", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & link.f1\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Q4DGfvK8DLcyTt5YG", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:10:25"}
{"_id": "ZZCFhKNpNdxKdFbMz", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n-link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "egk3D88o9bkjFFmjm", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:48:18"}
{"_id": "YvZNAME3BZr9wX7Y3", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f:File | no f.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall t:Trash | t.link in Trash\n}", "derivationOf": "w2gDLENv4zKyKesmN", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-24 23:45:59"}
{"_id": "mb933TgmbTMwSst9Y", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some f.link implies no link.f\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "5c6rzNBJH9LBTLFK7", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:54:22"}
{"_id": "yYjtyNDSFRWj8ekXa", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "pMTbTq5yf3vstmRvd", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-22 19:24:22"}
{"_id": "TWg5GbNWkDnjwontH", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  one file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4HsEm5BbeTzyexgsy", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 12:16:45"}
{"_id": "DutHZgR37KrsTeber", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some link.f implies no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HSyLSBSPgPcvTS2ZH", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-13 16:49:56"}
{"_id": "WieizAAP9bH4pPtvz", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link - f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "M38hPMeJZJBRjotvw", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:24:21"}
{"_id": "hvowumQiS9f5NNRsL", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cT8PDTeh65ZRuczrc", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:31:03"}
{"_id": "YeFLAQ2QYQ68Lh4dG", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File \n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected  in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { some File.link -> Trash implies some File -> Trash\n}", "derivationOf": "EnbBdsRxvc9ywP7BP", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-14 08:40:20"}
{"_id": "Jr8FBYa2SeffbL44D", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  lone link.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Az7qp9K7eFj484xkq", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-24 23:35:49"}
{"_id": "Y3nY9A3ZDd9L9GXcg", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "saT6qkhb4ueF3NwZe", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:34:46"}
{"_id": "pfPT6rWsphSEG9vGm", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  File = Trash + Protected\n  no Protected in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5WzP5tSgtG5TkJLbL", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:16:55"}
{"_id": "qwN2FhgH6k8noZNgK", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "JjxyFAWbBS4NKyzuy", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:25:46"}
{"_id": "46DKkvthK4SDTiqoK", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(no Protected) & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8u7f4YbvvN2NY9ihN", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:36:36"}
{"_id": "FavyLW2JBo54R3NgS", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \t\n \tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5coHFQEZPyxheCxp9", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-11-5 11:08:01"}
{"_id": "nm3u4Arp82qiYKYZF", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \t\n  \tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tl in Trash => \n  \tall f : File, l : f.link | l in Trash => f in Trash\n}", "derivationOf": "JofNScKun9GxsJRze", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-28 09:34:19"}
{"_id": "39KWtZWNn3GYuawdG", "cmd_i": 1, "code": "module tour/addressBook1\nsig Name,Addr{}\nsig Book{\n\taddr:Name->lone Addr\n\t}\npred show {}\nrun show for 3 but 1 Book", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "The name \"Trash\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-5-14 23:21:13"}
{"_id": "FFC5MKw3fdgiEEB6u", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  Trash <: link implies link :> Trash\n}", "derivationOf": "FQWzf3W8BQfiXXGJf", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:57:18"}
{"_id": "wyhPbeqe83ph2rmeu", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | f in Trash => f.link in Trash\n}", "derivationOf": "4HbDjSHrLBv5rcmga", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-15 00:51:41"}
{"_id": "hhzhDg3ud638RkJbr", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  File.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uajatq2iARWY5fDyg", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:29:32"}
{"_id": "tgKyrPZo3NC6piWHy", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f.link in Trash \n}", "derivationOf": "KC4fEk4cMSEc5LZ3J", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 15:08:16"}
{"_id": "FotjzDZLNRk2hD9K6", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall x:File | link.x implies  x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "merTacCx8b77iZXur", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:50:21"}
{"_id": "zqDBRf6tTjnDCFHCT", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | f in Trash -> f.link in Trash\n}", "derivationOf": "BizPeABCQD8wtDEZo", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-15 00:44:23"}
{"_id": "psBKKn2TEyK5L2kTY", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5bDi8QWswJnEEefir", "msg": "This expression failed to be typechecked line 45, column 2, filename=/tmp/alloy_heredoc2389407585218649332.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:29:23"}
{"_id": "b2jMZgfycaQkDFFan", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iyTWmfh6vZKZzidjQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:29:18"}
{"_id": "CE6XbhriQYMDWQRth", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link . link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  (Trash.link) in Trash\n}", "derivationOf": "hK6NXjNh6Q8XkxexS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:03:30"}
{"_id": "CmzrXQ3c8uGQdRCse", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1: File |   f1.^link = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xbMEdrnsxSiAW7qYL", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-18 12:35:58"}
{"_id": "PWKCQKTEcnnJdwp8A", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t : Trash | no link.t\n  \n}", "derivationOf": "B5LAEkWhDFrrZ9kYZ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 16:36:36"}
{"_id": "YQBXBwsGHCWZ9LJW7", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hG82dJ8gom8uaNwCq", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:59:54"}
{"_id": "RETYhbXX9Z5mmWpNx", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-27 11:02:04"}
{"_id": "7tCLWmu35ujNtmbiY", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link :> Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  Trash . link in Trash\n}", "derivationOf": "chSzWiikxsCpgp7Cs", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:28:37"}
{"_id": "2ASyMgFgRwxQx3HoX", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tProtected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fZXLXFnjkXxJisAzo", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:36:09"}
{"_id": "WFqhK2WdyPXvfgdpr", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t no Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5YFJnbDerMGy8KYfY", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:36:15"}
{"_id": "J2st8LMA2krmePjCG", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DqNdHARjkbCAHo9Sq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:25:39"}
{"_id": "3vhuu8NZKeL5Mwxva", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FbXyqZBGccu8HKYuN", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 01:09:02"}
{"_id": "KABvkWw7TtqigxGDF", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { link.File -> Trash \n}", "derivationOf": "hCbtKmdTj9LCzAyPK", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-13 22:25:12"}
{"_id": "8gKtQPpBPPXNF8jpK", "cmd_i": 0, "code": "\nsig Node {\n\\tadj : set Node\n}\n\n/*\nThe graph is undirected, ie, edges are symmetric.\nhttp:\n*/\npred undirected {\n  all x, y : Node | x->y in adj implies y->x in adj\n}\n\n/*\nThe graph is oriented, ie, contains no symmetric edges.\nhttp:\n*/\npred oriented {\n  all x, y : Node | x->y in adj implies y->x not in adj\n}\n\n/*\nThe graph is acyclic, ie, contains no directed cycles.\nhttp:\n*/\npred acyclic {\n  all x : Node | no x.(^adj) & x \n}\n\n/*\nThe graph is complete, ie, every node is connected to every other node.\nhttp:\n*/\npred complete {\n  all x : Node | x.adj = Node \n}\n\n/*\nThe graph contains no loops, ie, nodes have no transitions to themselves.\nhttp:\n*/\npred noLoops {\n  all x : Node | not x->x in adj\n}\n\n/*\nThe graph is weakly connected, ie, it is possible to reach every node from every node ignoring edge direction.\nhttp:\n*/\npred weaklyConnected {\n    all x : Node | Node in x.^adj + x + x.^~adj\n}\n\n/*\nThe graph is strongly connected, ie, it is possible to reach every node from every node considering edge direction.\nhttp:\n*/\npred stonglyConnected {\n  all x : Node | Node in x.^adj + x\n}\n\n/*\nThe graph is transitive, ie, if two nodes are connected through a third node, they also are connected directly.\nhttp:\n*/\npred transitive {\n  all x, y, z : Node | x->y in adj and y->z in adj implies x->z in adj\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "Syntax error at the \\ character. HEX: \\u5c)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-4-16 18:29:06"}
{"_id": "fXATtrYJ2t2L426Li", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | lone f.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "qDwvT3JQPp2RCN25m", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:33:12"}
{"_id": "sDu4dcNCgvR5dNFGN", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  Protected not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sgvLgBJhe8m8sH9aC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 15:08:56"}
{"_id": "zTHihDmJGKhbzdKPR", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | lone f.link\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NWh6J8kFpNnkszrB5", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:38:43"}
{"_id": "a934DuR3b4j9Rx9sz", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n- link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZZCFhKNpNdxKdFbMz", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:48:27"}
{"_id": "GvYy8FRLqZXs78YL5", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wXwRTYfqNy5m6Ye8S", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 23:21:39"}
{"_id": "i5o4K8Pw9NmT6ty4K", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "mt6zPoFWiSgvY8dtB", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:35:37"}
{"_id": "bPQPMz38tDtYjNLmT", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tnot Protected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MjDcrZrwveMFx5vRB", "msg": "This expression failed to be typechecked line 50, column 2, filename=/tmp/alloy_heredoc14584817332666136321.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:39:11"}
{"_id": "tZ2gPKNZHrZ7bSpwH", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash + File in Trash\n}", "derivationOf": "jNvWFkK6SiywomnmR", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:50:06"}
{"_id": "GJcs6HHzroqnCw4gB", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some (File-Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nPFmZDTg8q6uGnwDz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 21:22:41"}
{"_id": "GM3XoWgojesaSKag9", "cmd_i": 0, "code": "sig Worker {}\nvar sig Prepared in Worker {}\nvar sig Committed in Prepared {}\nvar sig Aborted in Worker {}\n\nfact init { no Prepared and no Aborted }\n\npred finish[w: Worker]{\n\tw not in Prepared\n\tw not in Aborted\n\tPrepared' = Prepared + w\n\tCommitted' = Committed\n\tAborted' = Aborted\n}\n\npred abort[w: Worker]{\n\tw not in Aborted\n\tw not in Committed\n\tw in Prepared implies some Aborted\n\tPrepared' = Prepared - w\n\tCommitted' = Committed\n\tAborted' = Aborted + w\n}\n\npred commit[w: Worker]{\n\tw in Prepared - Committed\n\tno Aborted\n\tPrepared' = Prepared\n\tCommitted' = Committed + w\n\tAborted' = Aborted\n}\n\nfact transitions{\n\talways(\n\t\tsome w: Worker | finish[w] or commit[w] or abort[w]\n\t)\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "The name \"Trash\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-15 10:49:02"}
{"_id": "DJA5f6eXDNpwkrywX", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall delete\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "H7nnBzNTFo7LWaboE", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 21:52:32"}
{"_id": "YX2yaEA2XpfFNMYQx", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nwKY47ijd2frzdwv6", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:36:04"}
{"_id": "FMdEmeyvD8aqaYmGz", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f1,f2:File | f->f2 in link and f->f1 = f1=f2\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ALAo5Xa49SFTDCf9n", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:38:35"}
{"_id": "HgRrc6TLbZQKkHqqQ", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1 : File | no link^.f1 & f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JbCQd7audajb8An3q", "msg": "There are 25 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all fun iden let lone no none one seq some sum this univ { ~", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:11:54"}
{"_id": "WhewusKTDFaYuYdSe", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f,g : File | f.link in Trash and g.link in Trash\n}", "derivationOf": "EzHA222vo9ixEJW6o", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:46:26"}
{"_id": "8YNgG9Qnj6sWv93qn", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "H9PfkJ5k9jvBNJhQc", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:25:57"}
{"_id": "B2asX7sxK4Arpa22z", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  link.Trash in Trash\n}", "derivationOf": "QgqjFq3KJ2d3QNf7n", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:34:27"}
{"_id": "RaDiYvYfrhh8xSmtC", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File->Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected -> Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "h2EDDzd2Q8m8tpbN6", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-13 19:00:07"}
{"_id": "ut5pqnqupFZXFCJqK", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "Chh2uRZvaNdsJ8XND", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File0": {"x": 798.65625, "y": 199}, "File1": {"x": 399.328125, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-10-22 20:43:19"}
{"_id": "eRt9RCaCJyAxMMbgq", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tTrash \\ Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8GA5dasnsnfWsY7MF", "msg": "Syntax error at the \\ character. HEX: \\u5c)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:34:11"}
{"_id": "5Fyeiss5tvS4wo7Pc", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   lone link: File.link \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all l1: File.link |   all l2: File.link | l2 & l1 = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iSTf7ZmyJ62jX89GA", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:21:33"}
{"_id": "xoy68B8MZYY8Bsqes", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KuqkpRDXxkHhzGYxs", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 15:06:30"}
{"_id": "RDvFP4QhNrZ5HzbN9", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n some File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "D6H3HPQdKb3E9Kida", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:17:29"}
{"_id": "GGj2qm2eCkuTBKMPD", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1: File | all f2: File | no f1.link = f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HQskmdLw46WpPYyDn", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:28:20"}
{"_id": "Dhcfn3htkWHkSyZ77", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f.trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ocQvP2ZPx5YnHN92P", "msg": "The name \"trash\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:13:27"}
{"_id": "eigSgPnWPoGqZZKDd", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected and f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "W4H4ow6y9xfzkvrr8", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 19:22:42"}
{"_id": "ZvQSLPfSKpFxqbohk", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zSEytzRFozrm49zH6", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:19:57"}
{"_id": "8oBaxt7KdFf45RC9S", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EHxFPmPuzSC9yvsFn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 19:08:53"}
{"_id": "q4RWwMHJCwG5iEovt", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { File.link -> Trash implies File -> Trash\n}", "derivationOf": "Rf4L7XdjTazK838Bh", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-13 22:39:52"}
{"_id": "bThTFcxwmr729GQxs", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \t\n \tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qX69oH4uHFMcw6BSj", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:36:18"}
{"_id": "Dx6fjykGpZ2HDC7MN", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   link: File.link, file:File |.link -> lone file\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "roYyZxFuWEYK9gf5X", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 11:57:00"}
{"_id": "bLFJmR4EW4A68vLsf", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-4-7 22:10:19"}
{"_id": "3P8Bfgdb2HL22Gm6Q", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n   \n\tall f : File | f in Trash \n  \n  \n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "b3LQRvSN97bZcbchu", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:21:15"}
{"_id": "4bjimSzEmKTh6SPbX", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 { some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no File.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link \n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { Trash.link in Trash\n\n}", "derivationOf": "hYccs4pHN29Kwregq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 16:22:37"}
{"_id": "bqCJ3sx2F8yoQ6sjN", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { link.File -> Trash implies File -> Trash \n}", "derivationOf": "aEt7N6N3m7WkG2Nij", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-13 22:52:08"}
{"_id": "quLXBJXPvG9JT8njD", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EcSeKqKjZFPRvM3gm", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-15 00:07:33"}
{"_id": "3JDzr4qfDjMN6pdQ6", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n\t-link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bHidF32stAJ4jAFtb", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:47:22"}
{"_id": "fhnE8CejLSJbjc3Zm", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  some link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "GtEo5kXj4ALgjo46e", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:16:26"}
{"_id": "BcSNCd2srZM6NBNnx", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    all f:File | some f1,f2:File | (f->f1 in link and f->f2 in link) implies f1=f2 or f=f1 or f=f2 \n}\n\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link implies f1 not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "LnASncHR2o9w786j8", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:43:33"}
{"_id": "B4Ry7dzN4hutmcD4Z", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File | lone file in file.^link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TXqPwGBYrh8GBqAnh", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:13:31"}
{"_id": "j7MkxXmsjXpSNiRH9", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "kr8EBrjDJzynGe3Wf", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:59:54"}
{"_id": "nxPruFdSC5JGzKJS2", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no(Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\tFile - Protected in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \t\n\tlone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2P9r25dzGiXiDozgd", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 23:47:41"}
{"_id": "5hbfnWEzm7iTnh48D", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - (Protected - Trash)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3ezZZC73kcbkmqAgP", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 19:12:18"}
{"_id": "Jfk8XMjyFdTbwgvEC", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YYCWdbp7o68bd3cvq", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 13:22:59"}
{"_id": "zwvDvMDdrNyxHGCKD", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vF2hhc79WsfQcL9jG", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 01:10:36"}
{"_id": "5NrseWvDQf4Eg6xzq", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-4-16 18:25:21"}
{"_id": "GEyGyHW85zxLo7cWE", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f:File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Mjvscs6NXfbL3QgW9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-6-15 19:39:16"}
{"_id": "NT3vi6fPvPtAL7HN5", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "edTcrdtTvj4o3kpni", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-8 02:29:40"}
{"_id": "Db4oH8sTHodYKpfSn", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    link.~link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZyQ2pdenutZeRwhTw", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-30 18:21:01"}
{"_id": "x84JFFjcKjbyw63kC", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "HbQcv2fXdoGdBcbLY", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 13:34:34"}
{"_id": "sciiugwHoM84pTPN2", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7heev2PeNyePG3bjm", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 20:11:37"}
{"_id": "Z7Hd5G6SsesTjBtvL", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t : Trash | link.t \n  \n}", "derivationOf": "9b4HkjqbLfPzdL3xk", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:46:08"}
{"_id": "ZLD5v65dNusF6QRwF", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XrFxTYoTvEDaS4JNz", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 20:02:42"}
{"_id": "5kzGiAQDAzavocQP5", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TWg5GbNWkDnjwontH", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 12:17:02"}
{"_id": "ZPSE9XjnRDjgFeQ9q", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-31 19:44:14"}
{"_id": "Y6aj6oK43H4s7np6z", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tone Trash - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "53WBK6timGeGERtNo", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:57:30"}
{"_id": "W57HmB7MoZ4kywztm", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tTrash & no Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aLuRLuQDx6gzMmTJk", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:43:23"}
{"_id": "GSWZuR3cDjAwrFovZ", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(no Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oj2mBhKhSHbQxYXpr", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:29:29"}
{"_id": "oFnLGSTRMGv6oaH3G", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  (link.f implies f not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SBKkyqnkiBZes8qJu", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 22:50:42"}
{"_id": "2ayxtZPfjRQAeNSwo", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "t6ruFToPTC6fjSK8y", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-11-10 15:09:30"}
{"_id": "KerMJRb6gmZDXedEa", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  File = Trash & Protected\n  some Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pZ43qCZ85eFbgqGfh", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:02:44"}
{"_id": "SJSe3sXGJmJXpvjSy", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no(Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\tFile - Protected in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \t\n\tlone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nxPruFdSC5JGzKJS2", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 23:51:41"}
{"_id": "zc3vEd2XFjM6GQhY6", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \talways (not Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "4zCkmKyyTGNw4maeH", "msg": "This expression failed to be typechecked line 50, column 12, filename=/tmp/alloy_heredoc4389304135262958382.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:14:40"}
{"_id": "7is7biQXmTa4BEiCZ", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file in file.^link  \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xAbAFZN8BkvA8cNck", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:15:10"}
{"_id": "8HvfuKxDKgmXHPX6e", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  link.f  implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File |  no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cKSRrZYtt5zSosXek", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 23:37:29"}
{"_id": "AsPiFicWCPuo6jvxz", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash in none\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "Subset operator is redundant, because the right subexpression is always empty.\nLeft type = {this/File}\nRight type = {none}", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-6-15 19:36:58"}
{"_id": "4QzFSYCBnTLzu4qGb", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "irTaWvMcFh9ZbM3fu", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 14:53:20"}
{"_id": "ZnQuNAGbWuKCDqYZt", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5QE7LYa36MztayfwF", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:29:05"}
{"_id": "zSEytzRFozrm49zH6", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  one Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GFhJnA5fRSb7PqpHW", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:19:07"}
{"_id": "gjD7uanZAYFhedCPb", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   link: File.link, file:File |.link -> lone file\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "roYyZxFuWEYK9gf5X", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 11:57:11"}
{"_id": "5hHovng2EHukF6rJW", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile.Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "Tx9Yk7G29yEvJfNuS", "msg": "This cannot be a legal relational join where\nleft hand side is this/File (type = {this/File})\nright hand side is this/Protected (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:05:33"}
{"_id": "ReXu83dJzk2vJPePK", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t(link . ~link) in iden\n}\n\n\npred inv7 {\n\tall f : Trash | no link . f\n}\n\n/* There are no links. */\npred inv8 {\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f . link in Trash\n}", "derivationOf": "5tLgpP2gSdQ4B2Arf", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:43:11"}
{"_id": "w9hx8siRuZkCi5bqm", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n  \tno Trash & Protected\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f,g,h:File | f->g in link implies g->h not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \t\n  \t\n\tTrash.link in Trash\t\n}", "derivationOf": "2Gb3sQSu7HFPdhdKn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:49:25"}
{"_id": "LkiNxc95EYzgG8nKh", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t(all f : File | f in Protected implies not in Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LwAFkupB5Q7H7xJBs", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 22:29:45"}
{"_id": "xuAaYmQ5D7G6J9Kde", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n  \t(not Protected)& Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3TETwnL8YcP3WYhNT", "msg": "This expression failed to be typechecked line 70, column 5, filename=/tmp/alloy_heredoc4110404089005952533.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:47:27"}
{"_id": "T8H8sEEcmgo5rQJwY", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tSome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9SR78JziZw2XtpZQw", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-12 11:13:23"}
{"_id": "EYMwR94NPhSMfKeiw", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno f:File | f.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iCrKkmEgkwHNGWaC4", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-12-2 12:01:56"}
{"_id": "tdETBtD2yPmPpSZdT", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some f.link implies no link.f\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "sQDJ49sxjD6FPvvLa", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:53:26"}
{"_id": "pozSYJFgW2xG8Bvfa", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  all p : Protected | p not in Trash\n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zCRu3CqskQfvkbiS7", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:40:12"}
{"_id": "vm6WmKtWHa6WDrWB3", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8qhEAtmoWfNgjYBeQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 16:53:33"}
{"_id": "b4ggS3BRssZBcRFPo", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f = Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n} \n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "DgXsZwQYkbJPied58", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:29:41"}
{"_id": "2x3ksgtfNiuv5eGZQ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\n  \n  \n  \n  no (Protected & Trash) and File.link  in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mrpRfKPGYqHoten6Y", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-14 23:30:22"}
{"_id": "cpjWyXwpBPvhgEoxj", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hj7LjBMMaqNWDCd73", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:48:21"}
{"_id": "CaPGN4KfBajRmS93b", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  \tlink.Trash implies Trash.~link\n}", "derivationOf": "73wQnNb9gH8PoWe4L", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:30:22"}
{"_id": "s6LJspAdq9ryC3xfZ", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tsome f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "koFzPutEDFgXhH42h", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:12:11"}
{"_id": "RkyDF7fHZzC6Kisbg", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "G3b2tQwnjQwfctAmk", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 19:24:27"}
{"_id": "KPbEnNjdFbE7zGpHE", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall t:Trash | t.link in Trash\n}", "derivationOf": "W7JEmjCa9ZgWa3HEq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:31:47"}
{"_id": "p5TcJ35fRifgDcQhE", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Zvi8rKmBLp6DRT23w", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-7-13 12:31:28"}
{"_id": "rAFiymWMu8zuCv8HF", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f->link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | (f->link) not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Ccf6Gd7yCzca4Lbzu", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-22 10:35:08"}
{"_id": "btY8WvZniPL95ZfoT", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "a9a28WS4s4nwW4d47", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:34:36"}
{"_id": "mKWAtkJEzgiQySfZv", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 20:01:46"}
{"_id": "3C6fJqXwoqC46PNKi", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 11:02:18"}
{"_id": "6YCAyxW4Wgz22Mg2q", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f.+link in Trash and f in Trash\n}", "derivationOf": "TTSNKpdQnrKuoy5Pk", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:43:51"}
{"_id": "TPfKicd5tuE3kuaTD", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  file.^link = lone\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "B4Ry7dzN4hutmcD4Z", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:13:53"}
{"_id": "bM4NaMNnRAWQkFA6W", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RwaTj44eRYzLmfE6W", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 19:21:29"}
{"_id": "rGq5RNJ6c78ob2TPn", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no File = Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MJdL3XNcCv5TWQR7o", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 18:33:27"}
{"_id": "Sa8sSppGCfx5EXMCW", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f->link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "weiHot5RsrB4HwSqz", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-28 09:24:47"}
{"_id": "HcQgLwmc3eMGjan92", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "Z6nrzEtKnEfrS6RPE", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-21 18:28:08"}
{"_id": "9Z4dqiGKpw2LfmxDA", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  File - Protected in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f1,f2,f3: File | f1->f2 in link && f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1,f2: File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f1,f2:File | not f1->f2 in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1,f2,f3: File | f1->f2 in link implies f2->f3 not in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f1,f2: File | f1->f2 in link && f1 in Trash implies f2 in Trash\n}", "derivationOf": "Y2nMQbdgQwojJtLQk", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-31 21:42:55"}
{"_id": "JFkgPyhtwudtwpG6g", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected & f not in Trash\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PurHFcbnMtyCktnwt", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 22:30:31"}
{"_id": "AwqxjbNLxdJCbJ7KW", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "xzG2eghyGYfKXgPeQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-22 19:01:09"}
{"_id": "qXdzymZSWWw2wCDiJ", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File |lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "46DKkvthK4SDTiqoK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:38:42"}
{"_id": "S587fXm2RtzP6oBZJ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aAZbiskejHi39j8d7", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 20:36:20"}
{"_id": "YeC92BWDCAxzYmNx8", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f->link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NMGZN9JRbELkEJBnD", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-28 09:24:28"}
{"_id": "ZQTY7ysac48dZrL3f", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \tall l : File.link | l not in Trash\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f->link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Sa8sSppGCfx5EXMCW", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-28 09:26:13"}
{"_id": "bkw4ToLn24hqhxajb", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f:File | no f.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | some f.link & Trash implies f in Trash\n}", "derivationOf": "BmTw4h2N5263T92uP", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-24 23:44:26"}
{"_id": "nH8DDjXBXGTEC5ESS", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zrNTS6BsrtrDmtdi9", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 01:07:11"}
{"_id": "Rbe7XLyeKmo4G3u4k", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "m6NzaAHFjmJnEs8a6", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-10 18:00:37"}
{"_id": "GYtdKu5vwFmFfePqe", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6tkd3NvuGiiwvGFpz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 20:16:13"}
{"_id": "Gyc2jKRCd3PyjWetg", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "h8Ezb93k5G5nPkCRP", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:15:42"}
{"_id": "7qXGarAcvE5kg295z", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  no (all f:File| f->f in link ) and( link.~link in iden )\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qjDh9PXShSkDbtDrz", "msg": "This expression failed to be typechecked line 57, column 3, filename=/tmp/alloy_heredoc6313586238135175144.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:53:59"}
{"_id": "Z64B3qZXGrT8QYt8j", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t(File / Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aiQ4mDurqhn2aDHkS", "msg": "The name \"File/Protected\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:34:54"}
{"_id": "nkjmgPhQDfZBm7uwg", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n\tTrash = File - Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f.link in Trash \n}", "derivationOf": "opGbqnhzgu8St8jFp", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-25 13:14:46"}
{"_id": "fkwmY8vFvaNxmrGut", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile.link in Protected\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KKjvtXJYm49LPthRp", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-11-14 01:23:06"}
{"_id": "sA3ciWZxhiffjRMyv", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected.Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "es8YXYyceKcw3xf2h", "msg": "This cannot be a legal relational join where\nleft hand side is this/Protected (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-11-1 16:48:01"}
{"_id": "qZN9DJ9EQ75i4ZW5d", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1 : File | not in f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vBfsPjbatJnjN9dQZ", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:15:09"}
{"_id": "PGvA6HroZwdHcv4Dt", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JomN2fntitrPJoZYp", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-22 10:27:38"}
{"_id": "3PuDqaH9X8y4S6LXv", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "quLXBJXPvG9JT8njD", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-15 00:27:06"}
{"_id": "FSH2ZCyk45prxHYt9", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t Trash in File\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dNfDrHeqpDEcHDJba", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-11-14 00:08:23"}
{"_id": "o2Z7rTAfzvPwPjxud", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash & File.Trash\n}", "derivationOf": "XyDyaxSjEXtJhDh36", "msg": "This cannot be a legal relational join where\nleft hand side is this/File (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:49:28"}
{"_id": "7heev2PeNyePG3bjm", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tFile & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZLD5v65dNusF6QRwF", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 20:03:26"}
{"_id": "HbQcv2fXdoGdBcbLY", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "R23mdjrueXmzvhxWf", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:34:31"}
{"_id": "fNqZdASvdgTYji2A3", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tFile = Protected\n  \tno Trash\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JFkgPyhtwudtwpG6g", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 22:31:18"}
{"_id": "aCnWsjQha3cwivYiF", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nYYxFDYQk9tSBhkC2", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:08:44"}
{"_id": "rmHp6GRs4NybMZRPC", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:26:18"}
{"_id": "rFHhLkepkrcKCYiyf", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f.link in Trash \n}", "derivationOf": "KbaLF8CLnApyartCr", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-25 13:08:23"}
{"_id": "2QvPD2A4RorpSbX77", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all t : Trash | t.link.Trash\n}", "derivationOf": "vPcgxGA8W6ookWZSr", "msg": "This cannot be a legal relational join where\nleft hand side is t . (this/File <: link) (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:41:47"}
{"_id": "GFLG7Y3YwQA7mZtPN", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all fl: File.link | all f: File | fl in Trash and fl.link->f implies f in Trash\n}", "derivationOf": "yBXSq4DcdMoNDqugp", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:17:25"}
{"_id": "SL3crsyow6DvaYwjz", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | one link.f\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pg9RSyGFwizsgmWwA", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-13 16:44:03"}
{"_id": "8S4jzMf2LHHYZBmsc", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f2,f3:File | f-> f2 in link and f->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tlink in none->none\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "r4mnZGM5astewSFCE", "msg": "Subset operator is redundant, because the right subexpression is always empty.\nLeft type = {this/File->this/File}\nRight type = {none->none}", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-6-15 19:43:27"}
{"_id": "6uu7pQCSjkKhHFFgh", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-1 12:09:23"}
{"_id": "MQhrk42EZLihy8cEt", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uLKY7yE5teqButRt6", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 23:24:19"}
{"_id": "gTJMGGD3GwHQBzdAb", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n not some f : Protected | f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  all f: File | no f.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f: File | f.link in Trash implies f in Trash\n\n}", "derivationOf": "kbyBxxNtPwYRKCXKB", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:15:35"}
{"_id": "JHJwb8dGW6wd9dmdL", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EsuGveXHoSZRFGX69", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 22:36:34"}
{"_id": "DsTP9pXpZ9soqxNvJ", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "FKbmB6zAPdNs4Qgy8", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:31:03"}
{"_id": "De4pCDn4SP9ZgspNo", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \t\n  \tall f : File | (all l : f.link | l not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | \n}", "derivationOf": "TJRbgj7jHt3BeBAra", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-28 09:30:58"}
{"_id": "wgYxAmA8T4DqJ3RCe", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.^link in Trash\n  \t\n}", "derivationOf": "w3kJSeuM2NHddMCXa", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-30 00:04:41"}
{"_id": "viMBHfGFqvpPFPGBt", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "vEGiwBM6TuoKuHHbw", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:30:13"}
{"_id": "G4xf9jKQDritHHt6j", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | (f->f1 in link and f->f2 in link and f1!=f and f2!=f) implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "yGwtMsuWNBbpJP3dG", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:30:58"}
{"_id": "Y2HquEetXfBLKY9rh", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Trash -> Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "okZE2TJMaEq9B2dxy", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:45:59"}
{"_id": "mrpRfKPGYqHoten6Y", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\n  \n  \n  \n  no (Protected & Trash) and File in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MzfAj8S2nLMs98ACe", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-14 23:29:58"}
{"_id": "sEtjrqxfGBA3rsKbr", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  link.File in Trash => File.link in Trash\n}", "derivationOf": "oYrzqP6J5yyuQsQjY", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:54:10"}
{"_id": "cPNLJdYjDgMuTyE3e", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f2,f3:File | f-> f2 in link and f->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JTbha8Fp2i7nm8tCF", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-6-15 19:42:47"}
{"_id": "rWQSi7mZXk865CoWf", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \t\n\tall f: File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \t\n\tall t: Trash | t.link in Trash\n}", "derivationOf": "dg72ad6J36iK6YPn3", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}]}, "nodePositions": {"File": {"x": 587.6640625, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-11-3 22:48:20"}
{"_id": "KxxhraoJre2v7RFRZ", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hCLw3ZTsY8maCda7b", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:28:58"}
{"_id": "98hHDXd22GFCW9xHK", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t : Trash, f : File | no f.link \n  \n}", "derivationOf": "YYEZnsRZqhYmvNfBy", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 16:44:07"}
{"_id": "B6mCzein4c8AKYoCE", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in File-Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink not in File.^link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "smnY7534Bsort2vZp", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2021-1-8 02:34:06"}
{"_id": "wDoepY5fyEQ5mircX", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JwhdGEGpMmjPkhWug", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 11:15:11"}
{"_id": "AdYEW4M2sZ3pcPtrE", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file : File. | file - file.link  lone file\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sM9YyjXzgPb5wjinC", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:04:07"}
{"_id": "wqtrRgiqC3Rhp4qQo", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:Protected | always (not f)&Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xqiF2ezLWHQZSWzcT", "msg": "This expression failed to be typechecked line 50, column 28, filename=/tmp/alloy_heredoc5047261895747831841.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 18:48:17"}
{"_id": "3xjkhCQuwdFm4kKXE", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f = Protected - Trash\n  }\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Ru973h69DyrQhc2jn", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 22:53:53"}
{"_id": "9vSDRcTuPiCYhhn34", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n  \tno Protected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kZgv2ifCzDRBZpzus", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:14:12"}
{"_id": "4znxMEKGZBbPFsz6Y", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1 : File | f->f1 in link => f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | f->f1 in link => f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f, f1 : File | f->f1 in link & Trash => f in Trash  \n}", "derivationOf": "8ma8KjQ4ikYzD5Xxf", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 01:00:53"}
{"_id": "P6J8gqQPkM9euT2Wm", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mMFG93Xqr5GFxMZom", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 15:13:24"}
{"_id": "smnY7534Bsort2vZp", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in File-Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gNSPYAwSBKFxYHrvv", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-8 02:33:34"}
{"_id": "SkP5BJhbdFFujAvRo", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFiles = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \t\n \tno \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Pb9Hd3SKx5QugBEdg", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-11-5 10:42:56"}
{"_id": "xfFjyEswAuEM6XX2P", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "H4NqZMB3p7z3SqzTu", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:38:21"}
{"_id": "SqPRrd7uxSbsYTz7m", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n  \t(not Protected)& Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xuAaYmQ5D7G6J9Kde", "msg": "This expression failed to be typechecked line 70, column 5, filename=/tmp/alloy_heredoc13288148073174560382.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:47:32"}
{"_id": "dxSMtwEPng9xWEvGK", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YXnyApudQYfyGekn3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 11:37:19"}
{"_id": "EBBENmA5yeEtXxWAJ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yNTRcm3GGS79HwPDe", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-13 19:04:15"}
{"_id": "mD6TwxpaPvsfhZLhX", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f : File | f = Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fYEK2Fdz2SMuBrZMm", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 18:58:58"}
{"_id": "yTXfYBdBe3GvTu7Pv", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (not in Protected) = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LLGFvrTgWBhdo7Ymh", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-2 21:34:19"}
{"_id": "e6iaZ5dibiAdkD9nh", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 13:14:05"}
{"_id": "WFrogHWRKCcnZScQe", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uQrBoEbRkb8oEC3Dd", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:54:13"}
{"_id": "oXQSMGWFMxpjNxFjw", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qBdQKwkBTGgTgqsg6", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:27:09"}
{"_id": "bdiMWWLz2nuH5rxR9", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "m7uurngxtAKvCx7Gq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-26 02:34:16"}
{"_id": "wWqNSaqgf9TaoSRQM", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n  \t(no Protected)& Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SqPRrd7uxSbsYTz7m", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:47:35"}
{"_id": "qsWcsTh3bCNfhqdTc", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | no not Protected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link & File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iZKQotbzoDgvEz2ku", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:52:59"}
{"_id": "Tbe6dSAH8gTqEQurD", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  Trash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link <: Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Fx5QyhhxsCwfv8d2E", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:34:26"}
{"_id": "bcyHpdKpzSRqErbbY", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AwvXAABPFGxaZv8RF", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 17:11:32"}
{"_id": "rWkJHivsFRdZCnpF8", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n  \tFile-Unprotect in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "rrpWaaCcJgGCDSK8t", "msg": "The name \"Unprotect\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:22:57"}
{"_id": "dixaETmTwyWJ52YeB", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dojJ4aGZCXkbx6BME", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 01:12:55"}
{"_id": "tKvkxLHSR37t9hrde", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  all f : File | some Trash\n  \n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TEqaJ7geWiCR6xFBp", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:06:03"}
{"_id": "bwotB2wWFuGH84ozi", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f.link in Trash & f in Trash\n}", "derivationOf": "Ngtkcx4u6WnGCEH8h", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:29:30"}
{"_id": "KEpQv976vTb7vXh72", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "y38yteRsdMrpEmWbC", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 14:49:39"}
{"_id": "vLJTGEhKchm65oTa8", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   all t : Trash | no t.link \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aXHmh9Je5dPqyriJb", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 16:17:39"}
{"_id": "67PMEsAArWNYaMdsJ", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gYdZpAm2ePceLuApS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:33:38"}
{"_id": "X9uabdxzciymdsTPZ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-18 11:34:58"}
{"_id": "SDJoEgxxbJqKPTMNN", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-27 16:12:14"}
{"_id": "LhYTPf94sX9BoP2Hd", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \tlone File.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "LBcR869DwGaGCwcZr", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-22 19:11:54"}
{"_id": "yK3owchWj9iRLwMZn", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | no Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hQuG72RxDPP5FgEPj", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:32:38"}
{"_id": "yS4RCdr6Y7RGpj4Yn", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GYtdKu5vwFmFfePqe", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 20:16:51"}
{"_id": "XHgnj8kwRPjev7ua9", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno(no link)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "kkZmmyQfKMNHSMMMp", "msg": "This expression failed to be typechecked line 60, column 2, filename=/tmp/alloy_heredoc5806235340499921370.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-18 20:46:41"}
{"_id": "yEdwEPPjuABkB4fhE", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n\n/* There is no deleted link. */\npred inv7 {\n\tlink not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Yp44d7a6xaC2hytTR", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:46:01"}
{"_id": "HWrtbnk3yhLzZBY2C", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,x:File | f.link x  \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "G2xkmQXu365vMGz4M", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:49:06"}
{"_id": "AfTHKkBP5m8jyF5Aq", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no link.f on Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fHeN7bQurqe5ta7Zg", "msg": "The name \"on\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 22:48:57"}
{"_id": "A3DnYMmFCbcNP8mxA", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-24 19:20:45"}
{"_id": "sau6McgLfo8X7tEDQ", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "67RQBf5sfBB7k9KwT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-10 17:59:05"}
{"_id": "nnxsQopPdmKRNRAMg", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "LAueSLqoHToPg8cex", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-18 17:51:39"}
{"_id": "NjnLhkTTHw3jDhvb8", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7SQvPZJ6XveubDoqu", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 00:47:53"}
{"_id": "zLqatEnhy95jDNwhG", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tFile = Trash + Protected\n  \tno Protected in Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7PXKsrAkMNq7mzJwB", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:10:23"}
{"_id": "6idP7GpEZW9XNT6Jq", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-4 16:08:53"}
{"_id": "3Y7jKjiiAq6vDBNug", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n   \n\t\n  all f,f1,f2 : File | f->f1 + f->f2 in link implies f1=f2\n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n   \n\n\n  \n  \n  \n  link not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "jc89kbDJzPmz8BQAJ", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2021-1-12 17:30:24"}
{"_id": "372biy8Kgzcozm6zh", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n not some f : Protected | f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  all f: File | no f.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ccjNX6dRWdy2FNNRz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:13:52"}
{"_id": "sJ97sYgD25HpxN7dP", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n\tTrash=none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gJ8kToNTufMFfjRXM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 16:19:11"}
{"_id": "zZ9DXYGar53RjFHkN", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "68wsbkEWGqRBbwCFR", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-18 17:44:19"}
{"_id": "wX2mD3rpt3joyfmMJ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.File & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JhYpsLoPESYuCKBBQ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:30:05"}
{"_id": "L6xvxETHo3rLYwcbK", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kJARMENBT5nEsKdTf", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-21 18:25:33"}
{"_id": "theBxT4QLoLNSn4Qq", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File in Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nWyB58zQzwN9DAjuT", "msg": "This expression failed to be typechecked line 40, column 2, filename=/tmp/alloy_heredoc11913028644812383295.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 21:43:42"}
{"_id": "ZgmnFHPJYGqK6LXYu", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = Files - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Ys5Nxuz6bysqCywYH", "msg": "The name \"Files\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 20:19:36"}
{"_id": "wmk2gCZB6d8SWqchF", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NZEsvj25vw7yDufQA", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-4 15:01:32"}
{"_id": "xRu5BqbLNsq9HPpMs", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:27:10"}
{"_id": "urAdawQ5poXa5PSuq", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tsome Trash - Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oFjuZR3rjZk7N5nFY", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:37:06"}
{"_id": "iNy2bjpLZiZGXmbCm", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4y5su5ynxG8svsGtZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 11:39:57"}
{"_id": "6QwnmwtDXTeehgMLX", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all f1,f2:File | not f1 in f1.link && not f2 in f2.link && not f1.link = f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gkNtArJp2ycYfP7QX", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 17:16:54"}
{"_id": "RWEFk6f2MtYEBx8Mt", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | lone f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "67PMEsAArWNYaMdsJ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:35:02"}
{"_id": "tHYg7xz7j58wgJCDw", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all link : File.link | f: File | link -> lone file\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "e8289hmBstuK3eEdg", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:09:58"}
{"_id": "kCoyQqCqjNgv5bHcK", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tTrash - Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "b6AhzLsz9WW6vikyT", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:28:04"}
{"_id": "SunM5dn8TL5zg3JTX", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \nall f:File |  f.link implies  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qzQY5yQ6gBMY2Fg5f", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 23:49:49"}
{"_id": "XtA7tgHSRBCZTpANK", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ofKNS2zWKq73Y6qZk", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:24:30"}
{"_id": "6NzgNTGE36GvPQuhc", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Nad6foXdGDxjzREfX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 11:47:46"}
{"_id": "pfKGs9dNQaAns7vf6", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \nall f : File | f not in Protected implies f in Trash\n  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "d4EXgEGJG2Ad7fhHm", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 23:27:08"}
{"_id": "siX4Q5JhAc5ce9ASH", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected - Trash\n}\n\n\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QfnvDnWqtrDaq2MkG", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:45:18"}
{"_id": "SkiRaQGuXufzKLLzP", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\n  \n  \n  \n  no (Protected & Trash) and (File.link + File)  in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2x3ksgtfNiuv5eGZQ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-14 23:30:38"}
{"_id": "J88RRri9mS97C4kWa", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5jZbWe4G95mj5ucky", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:07:48"}
{"_id": "KRhaBqzzERabLMbz4", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n  \t\t(File \\ Protected)\t& Trash\n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "76tXKwgxu82Z7sAgC", "msg": "Syntax error at the \\ character. HEX: \\u5c)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:57:05"}
{"_id": "69F9QbRAyDNJq32tn", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  Protected not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qcvd7x7o5xD5yTBxw", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 23:26:58"}
{"_id": "LNqyiXXfRms9Hqasp", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no (Protected & Trash)\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n  \n  \n  \n}\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MnMbSNcZgKoHAGCWX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:50:12"}
{"_id": "inSctb5NiM6WWniiL", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n\t File in Trash\n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CsSwE8KbXbvot9EGE", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:30:16"}
{"_id": "7SQvPZJ6XveubDoqu", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | no f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 00:47:47"}
{"_id": "CysAe4n952kvSADz9", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  (Trash-link) = Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uRdFxGqXugBongGEB", "msg": "- can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 19:41:11"}
{"_id": "5B24EDhxjiGEiGvZe", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 { some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link.Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oZYf4ynqpX27TL65Q", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 16:11:54"}
{"_id": "EeH7LKsRZNEsfmLLv", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f in Trash & f not in Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gHfBBJCMcyY9SixM6", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:09:27"}
{"_id": "WuuB3SNXB9yBED3Z6", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some f.link implies no link.f\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "C6DHQofsSgg9xZna4", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File0": {"x": 282.75, "y": 99.5}, "File1": {"x": 282.75, "y": 298.5}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-11-23 15:45:20"}
{"_id": "z6pn3LEcR6gzdoEQm", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "e72DYuNjchrZNZGeB", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:04:15"}
{"_id": "ARw9BRZ8LRotARfjD", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tone Protected -> Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9Nej8PyRxjEGZwQR5", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:46:20"}
{"_id": "xQESE4Zdy4PmzFqRK", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YrGgt9CiqceTa84Xz", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 18:45:48"}
{"_id": "GXwkosHNGyv8HGFZj", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected&Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NtrTciqvTxWezjZgc", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 20:10:32"}
{"_id": "iwfbBGZHJ2mEudkXe", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tsome link.Trash.File\n}", "derivationOf": "LZHh7c5LA62h4Wihc", "msg": "This cannot be a legal relational join where\nleft hand side is (this/File <: link) . this/Trash (type = {this/File})\nright hand side is this/File (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:37:03"}
{"_id": "qJ9W2SCxMRzfM8rBv", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone (File.link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "nBGhB285n5oaGQKgz", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-21 18:29:31"}
{"_id": "EhvZynbndSkCbTL7d", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some f.link implies no link.f\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | some f.link in Trash implies link.f in Trash\n}", "derivationOf": "BWhPiXnNi8JN3TZkf", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-23 15:37:23"}
{"_id": "ELwBMZjexZdRAeNKb", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile.link in Protected\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no (f.link).link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash | f.link in Trash\n}", "derivationOf": "ipBruPNgHghED5SEK", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-11-14 01:32:02"}
{"_id": "nDzhxJvjtatHfGnAj", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t-link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "BbBZzksvvmoXKGqjF", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-17 10:47:10"}
{"_id": "m7uurngxtAKvCx7Gq", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "gTHqHfKTwBMFxC59J", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-26 02:34:04"}
{"_id": "2inZBuDbrLyu67B8v", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.^link in Trash\n  \t\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:33:58"}
{"_id": "uSKpAR42EsDQ7HYmq", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File \n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected  in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no File.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link.link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { some File.link -> Trash implies some File -> Trash\n}", "derivationOf": "gwwAGp9izE6MguCAk", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 08:44:06"}
{"_id": "sxRz67XXnkeahGRdb", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  File / not Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n  all f:File | lone f.link\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "X8mQm3mpXquJPABZk", "msg": "There are 1 possible tokens that can appear here:\nNAME", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:43:05"}
{"_id": "d85Pd3xJFRcRE9emX", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "subyYjfayccGS5evh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-10 15:03:44"}
{"_id": "nBGhB285n5oaGQKgz", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "ezW37nPZLi5vfmTzo", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-21 18:28:56"}
{"_id": "F9hcx5x5nKWbcb5NS", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "NnmLmjdncnyD2ZGzF", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-22 19:27:07"}
{"_id": "sWA2DXAvX6HRjhGAK", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  lone link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TMWKiMrimQEDQBgHN", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:23:59"}
{"_id": "jB4coRSnm5oNSuDgY", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some File in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  Protected not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yKtPPv3aEwy4iJ2i7", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 15:04:49"}
{"_id": "Xgztk4v7nNimxoGJ9", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "2Q6av9efXB2FPqWdN", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:34:36"}
{"_id": "Md437yrZfbqQnDkRQ", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  lone File.link\n   \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  File.link.link = none  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  File in Trash implies File.link in Trash \n}", "derivationOf": "pkxivdyxdLSNoEt3L", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 17:55:01"}
{"_id": "v5SFTnQsiEAmANtKp", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XMiDFYEup4aQResFC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 16:24:52"}
{"_id": "voE4ZLZMqPK87hNoe", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some f.link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FxpbTxKdRrazCCp8u", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-13 16:46:44"}
{"_id": "J2pZuZXnAkZXHKy9k", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f,x :File | f->x in link implies after  f->x in link\t\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.^link in Trash\n  \t\n}", "derivationOf": "3gRFNDTvbTQ7rSxpf", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-30 00:05:34"}
{"_id": "nXAQRMvoZ388k7oqT", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \nall f:File |  f.link implies f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RSJRboxbdCHS3JTFH", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 23:48:46"}
{"_id": "JxMGr2igxyF6McRWt", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash & link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "Xgztk4v7nNimxoGJ9", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:36:22"}
{"_id": "xqEMXb7jLrzxhGfSJ", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3yySTu3ZL83r5oEdA", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-10 15:07:13"}
{"_id": "KtHHcGfWjhyALT2xb", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \tno Trash . link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zuG93f8s3cE2oxw6Q", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:00:33"}
{"_id": "fe92emNq5gqoLkKqt", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all file: File | no file.link in Trash \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kW6nqSE7MwCXg8hHG", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:19:35"}
{"_id": "CaYxbDzFYufrfrA2a", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tno Protected | File = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "b2RZnyPqvqPvC5qfg", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 22:57:13"}
{"_id": "BizPeABCQD8wtDEZo", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "dMWF6883GNcz7wKNc", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-15 00:42:37"}
{"_id": "KEv7a7CjKXPjJE52h", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x: File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "h6HWyBwBmoZruieGz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:03:31"}
{"_id": "kjmT5k9NczNWqDw9q", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile & Trash = no Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "w6i7zoeNEHgrZpS8r", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 20:31:38"}
{"_id": "TJRbgj7jHt3BeBAra", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \t\n  \tall f : File | all l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | \n}", "derivationOf": "xgZHtr7yoYyrCs5AB", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-28 09:30:48"}
{"_id": "iyKpXgktpcEQCNx5z", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File \n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { some File.link -> Trash implies some File -> Trash\n}", "derivationOf": "R7YjkkeT7t5rncEZy", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-14 08:35:31"}
{"_id": "vofSQ8qrCQ2EYHeRS", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "JpkAtZs3CKvhPbhF9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:12:06"}
{"_id": "roZwzRCPgFJXR488w", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File-Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JP3iw2Zs5gCjGPPad", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 22:40:38"}
{"_id": "LtrgefZTb8xvsKPq2", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kFpJZzhy4mXtRNfLr", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-18 17:45:13"}
{"_id": "e9QbHCMnjhKq25dvx", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1.link - f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HRhYzGy5kaNWxnfqE", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:22:23"}
{"_id": "oTnEafv3dSBZ4PLcm", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n  \tall f:File\\Unprotected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "DKAQPJ3kSnDMGYjdM", "msg": "Syntax error at the \\ character. HEX: \\u5c)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:22:26"}
{"_id": "hAj7ckncEmid7s4aQ", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LJaWFJQEtZbZnsdKQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 15:00:31"}
{"_id": "2P9r25dzGiXiDozgd", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no(Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\tFile - Protected in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \t\n  lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "STX5BmtbwJDmuYwHP", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 23:45:35"}
{"_id": "cbMdLeCuzgqxWQDgF", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Do6DftNk3G2fEzzdo", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-12-2 12:00:46"}
{"_id": "8md3xHcHSfLJ2ikF4", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eXqhe6Noope4EtgQ6", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:30:22"}
{"_id": "DEYeZxZm4eiF5mtgu", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NT3vi6fPvPtAL7HN5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-8 02:30:05"}
{"_id": "hBy2rttNJob8YKmte", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash \n}", "derivationOf": "3b8Xg7eAKpSGRC7G5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-7 19:34:32"}
{"_id": "DY5sj2SnfQnAAKpGH", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \t(File/Protected)\t& Trash\n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KRhaBqzzERabLMbz4", "msg": "The name \"File/Protected\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:57:26"}
{"_id": "P9d3ktbq2zBf3jJuJ", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  \t\n}", "derivationOf": "CaPGN4KfBajRmS93b", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File0": {"x": 798.65625, "y": 199}, "File1": {"x": 399.328125, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-10-22 20:39:35"}
{"_id": "KsMyz5RAsk75pSEAM", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash in link.Trash\n}", "derivationOf": "r4mPur2DAeNETrJc5", "msg": "Subset operator is redundant, because the left and right expressions always have the same value.\nLeft type = {this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 11:29:44"}
{"_id": "oEzsudbXDka8i5J7M", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1 : File | f->f1 in link => f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | f->f1 in link => f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f, f1 : File | f->f1 in link and f1 in Trash => f in Trash  \n}", "derivationOf": "kn4z8knohtobGW9En", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 01:02:06"}
{"_id": "MeqoFtyfhHE95EkWZ", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (File . File.link)\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "E7gRFKR2wSKouRpx9", "msg": "This cannot be a legal relational join where\nleft hand side is this/File (type = {this/File})\nright hand side is this/File (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:13:54"}
{"_id": "NT6G8zpsv5DbCXWoH", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  lone (File.link)\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bCntn2h9x93X2nBgF", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:26:07"}
{"_id": "wabdhYzZQ6qe3JpWy", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "L6xvxETHo3rLYwcbK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-21 18:26:00"}
{"_id": "TkQRNDabK2qTYj3z9", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected no in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6ne3tbwr78S2mGNyE", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:22:42"}
{"_id": "z72keqxMcftjPzQeM", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f1,f2:File | none f1.link -> f2\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Bogqay8RSjMv76bkz", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{none}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:40:40"}
{"_id": "EFmvnSgFoL5EbNhmE", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash implies Trash\n}", "derivationOf": "HyTCzTe49ZNAwtYu5", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 11:30:03"}
{"_id": "uTihAbXR4Cq96zXdR", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n   \n\t\n  all f,f1,f2 : File | f->f1 + f->f2 in link implies f1=f2\n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n   \n\n\n  \n  \n  \n  File.link not in Trash\n  \n  all f : File.link | f not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "SAfX5JpWoiAFBqP8E", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-12 17:32:13"}
{"_id": "xqiF2ezLWHQZSWzcT", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:Protected | not f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EdpW7KiWSyXH5dMPY", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-22 18:46:56"}
{"_id": "rAfihJTjWRawNofN5", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File - Protected) in Trash  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "cmQxDnrpb8aS9KSRP", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:12:18"}
{"_id": "fGDBDnYWH37nPWAP5", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno ~link.lin in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4gkXie2MBuYKTLTb5", "msg": "The name \"lin\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:32:51"}
{"_id": "93YdoRPsjXrZFHvHC", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "S587fXm2RtzP6oBZJ", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 20:37:02"}
{"_id": "ATrZFeTGpXHjyrT7P", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FpagQyzTJ9GvJrBbR", "msg": "This expression failed to be typechecked line 45, column 2, filename=/tmp/alloy_heredoc11570959745230616576.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:28:11"}
{"_id": "LSJinyPixKCCnJ29Z", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SX9uThq79F7i8zLnW", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 00:48:34"}
{"_id": "Jme4vxtJPQNyZydSB", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f.link.link in Trash\n}", "derivationOf": "KCLYBA3RdQeyQ9m3J", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 14:45:53"}
{"_id": "u2scSpk67qd7kGxcc", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f . link\n}\n\n\npred inv7 {\n\tall f : Trash | no link . f\n}\n\n/* There are no links. */\npred inv8 {\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f . link in Trash\n}", "derivationOf": "QdhKnhBSJz6P7zQKw", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": []}, "nodePositions": {"File": {"x": 400.53125, "y": 199.1999969482422}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-10-3 09:39:58"}
{"_id": "hCbtKmdTj9LCzAyPK", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { link -> Trash implies File -> Trash\n\n}", "derivationOf": "ZXakWDNxBh93X9khX", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-13 19:10:07"}
{"_id": "jiTY7BcfiKcHTAAse", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all disj f1,f2:File | f1.^link & f2.^link = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "x7rDjwDyihRZarnRS", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 17:11:01"}
{"_id": "tauGo3zQoL3C7Zqza", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Nnm9wvb4nw8WFSy3E", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-12-2 12:03:49"}
{"_id": "k4qZRbb6rtw3mQ6aq", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f.^link in Trash and f in Trash\n}", "derivationOf": "9vPciujDPHtnmkpKa", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 14:38:20"}
{"_id": "s2uEgtvujNMprPkyQ", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no(Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\tFile - Protected in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \t\n\tlone link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WGq7MJ5FBMvtBxS9q", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 00:10:03"}
{"_id": "L5GqDoLNw3WFj3ihy", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n\t\n  \t\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iBxRn3ZtxbWwsivTa", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:24:50"}
{"_id": "4Kr57dCkEZd3dMAwD", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden\n}\n\n\npred inv7 {\n\tno link . Trash\n}\n\n/* There are no links. */\npred inv8 {\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  \tTrash . link in Trash\n}", "derivationOf": "8PKMDHZ2xzLhp6MKe", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:00:02"}
{"_id": "4bHbG7NskKdvbbXap", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  \tlink.Trash implies Trash.link\u00ba\n}", "derivationOf": "F9hcx5x5nKWbcb5NS", "msg": "Syntax error at the ? character. HEX: \\u3f)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:29:55"}
{"_id": "ga6wAbd4JgxJAkKcK", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TnqSwWPb6hAfb3WFB", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-10 15:10:41"}
{"_id": "4oQCzWFMTfZfKSdCT", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,x:File | f->x in link implies x-Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QZAvGNCEu4rau6XTb", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:47:14"}
{"_id": "CmsKvzALNmAopKTQM", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f = Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n \n}\n\n/* There are no links. */\npred inv8 {\n\tno link.Trash\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tsome link.Trash => ~link.Trash\n}", "derivationOf": "HRbKvfiCajiWLsLkL", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 11:29:00"}
{"_id": "qDwvT3JQPp2RCN25m", "cmd_i": 8, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | lone f.link \n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "eZMjLMyA8MxjQyria", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:33:01"}
{"_id": "XiWjHhqfJyx7bPDnW", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlink\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zZHT6HzFcCCu6Xw9H", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 19:50:17"}
{"_id": "2WDm6Xy6JWGnoeXAz", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1 : File | f->f1 in link => f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink.~link in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5kCRw6TBTh6hZRA8S", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 00:55:34"}
{"_id": "L9Rg6JpYZrpH9GNMx", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EkP2G8yqBjoaco6Hy", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 23:39:39"}
{"_id": "LH8wP3YE6zAqqhaGL", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlet x = File & Trash | x.link in Trash \n}", "derivationOf": "ALR37YLSTXECfGhtC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-30 18:42:26"}
{"_id": "o9fX9kpovvNAbFed4", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tFile = Protected - Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aQS6KWyiBkHXJJbPZ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 22:46:56"}
{"_id": "sh74T2Rh4ENHjWZuq", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "yAxF7xrpSTp2B4yNx", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:33:49"}
{"_id": "7bKbCeQ7gTJxEvAQj", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n  \tno Trash & Protected\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f,g,h:File | f->g in link implies g->h not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "W9yb2BpsQPJtWWyoA", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:47:29"}
{"_id": "eRritQgttQc36CHZb", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sKpSiDWGzCt4BcEpW", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:31:07"}
{"_id": "Pf2AgAEsqQXzQnJnw", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {  \n   all file: File |  lone file.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  File.link.link = none  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  File.link = one and File in Trash implies File.link in Trash \n}", "derivationOf": "ghMcgkbKuyj7qjFep", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 18:24:38"}
{"_id": "vy9wCTMyz8Dnv5w36", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \t(File\\Protected) in Trash \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "ECQGhuiSjWbspkHFu", "msg": "Syntax error at the \\ character. HEX: \\u5c)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:05:25"}
{"_id": "mMMgqte7n7Gbxc4fr", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:21:23"}
{"_id": "xcX75HQtQt9gXE6ne", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tSome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFiles = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Pb9Hd3SKx5QugBEdg", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-11-5 10:03:24"}
{"_id": "HziGwdQNfiAFGNuXt", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:(File-Protected) | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "Z3Y8nHaNy2xtEJP9B", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:28:22"}
{"_id": "tNwTCSZ4o9aA9M4gi", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-5-7 21:19:11"}
{"_id": "GFhJnA5fRSb7PqpHW", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:17:47"}
{"_id": "k8Bydf69QEcfXPF9f", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\tno Trash & Protected and all f:File | f.link in Protected\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "h3RPdJWB3MiByN89b", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-11-14 01:21:46"}
{"_id": "xRNYD2GNYKHytQME6", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f2,f3:File | f-> f2 in link and f->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,f':File | f->f' in link implies f+f' not in Trash\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ey35SXesbW2MBr3G9", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-6-15 19:45:54"}
{"_id": "6SYGB6hWSYYrx4F7k", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tno Protected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "W5MGaeTxZqiHHBdNi", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:28:15"}
{"_id": "qqKZybxmoeavAoJ4N", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SpwCeDwm7xRw9PpEX", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:18:02"}
{"_id": "zSmQLaHh4gG5nA55D", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | no f.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "m3GQAHnFy39WRkk6m", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:19:36"}
{"_id": "ijbyycKFuDdkyHGHM", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tno Protected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SXtc4tD4r9GcCusMn", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:33:28"}
{"_id": "NdJKoWwhtXNuD3x2R", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash -> f.link in Trash\n  \n}", "derivationOf": "HoNHYg9JK45y7t8n2", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 18:10:53"}
{"_id": "KbaLF8CLnApyartCr", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f.link in Trash \n}", "derivationOf": "53SYmEKcazKDZ2bH5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-25 13:07:17"}
{"_id": "ZB5HQjTfv4KJPThji", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f1,f2:File | f1.link & f2.link = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qctb7qrfdXaxAseBp", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 16:42:03"}
{"_id": "rrLr5btEZPwXWTvek", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f:File |f.Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xQESE4Zdy4PmzFqRK", "msg": "This cannot be a legal relational join where\nleft hand side is f (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 18:47:38"}
{"_id": "e72DYuNjchrZNZGeB", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SzrWSeMBqT9Kv6mwg", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:45:44"}
{"_id": "d9K9JYa4k4BAETvKd", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "9rPb62jKMRsfYrXih", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:34:46"}
{"_id": "JSwpqfXihK98NA58w", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JrYM2Z2w2kPcfkKTm", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:22:56"}
{"_id": "9hb2WqmnvDZqhrJAX", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xfFjyEswAuEM6XX2P", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:39:52"}
{"_id": "2f69ePb2NRYvB8uBo", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Trash + Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vCMfdsSg4fyuEQz5r", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:43:08"}
{"_id": "KKigA46hxB3PXDCzr", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZKHKsWAFww5KiBnkN", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:28:55"}
{"_id": "vhJZwYgFYejAMdAzK", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sciiugwHoM84pTPN2", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 20:11:52"}
{"_id": "neovPiq4nnn63oTMb", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "boZECYMRmRb5NMrrx", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 18:40:09"}
{"_id": "Ryuoqt45hGhQtT8qr", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File - Protected) in Trash  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "JWifduFAdTdqZLnnh", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 10:13:03"}
{"_id": "iYGhfsWXr6PydMkoi", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bvSKqpFiotYs8dFiz", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 21:49:20"}
{"_id": "aT5LQnNNc72Dvy9ju", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno Trash & Files\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "w43kx2dtqbii34dZE", "msg": "The name \"Files\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:25:44"}
{"_id": "2u9pYiMDgMb6ZTCTJ", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t no (File.link in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kiKeoQm79PpDSsrJm", "msg": "This expression failed to be typechecked line 60, column 3, filename=/tmp/alloy_heredoc18156477187512903965.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-11-14 01:13:36"}
{"_id": "ZNpngaijaDtus5NR5", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  \tall x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WxDvj6YfQnwNwuiBt", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:03:09"}
{"_id": "HxpqomsvDCnZ5H26g", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some File = Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "u2rSQiG5gi6tgaAHY", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 18:52:00"}
{"_id": "oxFdWHPL8EjCzbckx", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RBwFyapuEQQ3xyTtv", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 16:51:14"}
{"_id": "CAFb6Co6E9vvdRffe", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link . link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  link.Trash in Trash.link\n}", "derivationOf": "ykJCxmSRTwSLzYNRj", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 10:00:45"}
{"_id": "8a7JsKqb7tfwvTwLg", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g: File | f->g in link implies no g.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | (f.link + f) in Trash implies link.f in Trash\n}", "derivationOf": "z6mG2S7HQ9s5X9St4", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:39:47"}
{"_id": "37dXDfQTs7xiqpwpp", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Trash x Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DTuv8MZPjTFRbnsPF", "msg": "The name \"x\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:53:37"}
{"_id": "EcAQzvbrc5oJ5Fm83", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link no Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XfNKq8GvNSbbfrstL", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:24:54"}
{"_id": "gdfCZD2oH6Hw96qzn", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n\t Trash = File\n  \tno Protected\n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MWycmmkgqyjWaGFje", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:34:12"}
{"_id": "nkYHEjLGZsuALczso", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | all l : f.link | f in Trash implies l in Trash\n  \n}", "derivationOf": "f7BBssbekhLjwAyhp", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:21:59"}
{"_id": "PtQ4Lu46Fkpcf7rma", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile.link in Protected\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no (f.link).link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "WLrKKqLR8m7kgTEmC", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-11-14 01:40:55"}
{"_id": "QrvxirGtkWQaAmYau", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no link.f in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AfTHKkBP5m8jyF5Aq", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 22:49:04"}
{"_id": "DvxKgKYtXJRSnN5ut", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all fl: File.link | all f: File | fl in Trash and fl->f in link implies f in Trash\n}", "derivationOf": "GFLG7Y3YwQA7mZtPN", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:17:49"}
{"_id": "JfH4LGLjpDnmWikCz", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n  \tno Trash & Protected\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,g,h:File | f->g in link and f->h in link implies g=h \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "roKGqYvJwFkjbjaJK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:44:20"}
{"_id": "ri5p9oALpS2H7fnrQ", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected + Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nZEL3GSwL5M7WkL7e", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:23:09"}
{"_id": "F3dNMN4rmgucmgH8M", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  Protected no Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xyZ9hSAP6Jt8rsfxJ", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:29:14"}
{"_id": "qmMerLoSHNGyjh3dv", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n\tTrash=none\n}\n\n/* All files are deleted. */\npred inv2 {\n  \t\n  \n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(not Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8o9iAH2vJb8R3Tk6N", "msg": "This expression failed to be typechecked line 53, column 3, filename=/tmp/alloy_heredoc12634969182403775133.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-12 16:21:15"}
{"_id": "nep4xLoBbo98avh65", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "fCZWgJQSx8q5uQMbA", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-22 18:56:02"}
{"_id": "gXhZobd9sJtcMYKwv", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PvQKZfA3DACENobfd", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:23:38"}
{"_id": "EDiWy58PvNjrEvLyt", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "X2FE9xmCxMy3xmudx", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:31:18"}
{"_id": "vetjMPPpkhzGtAnr7", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3PuDqaH9X8y4S6LXv", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-15 00:38:36"}
{"_id": "K6axGDtLDfRoo4c8W", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LTQGkuwpqoK8cJ9rj", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:41:33"}
{"_id": "SGh7g2jaFbXYMjFMN", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\nall x, y : File | x->y in link implies (x not in Trash and y not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DDviFW52DN8XoYyME", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-5-8 19:28:48"}
{"_id": "acq4hgjaZrHRZvuuh", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno File\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yKvSFgmf4uxdWz7Fe", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-18 17:43:56"}
{"_id": "tfZk6RbnvsXMqEH5k", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "boZECYMRmRb5NMrrx", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 18:40:09"}
{"_id": "yhpoGeFYmzpvixKmS", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "H2oJRGBvrgZ2DhZna", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:37:25"}
{"_id": "eq7zgjWr6pbrkj6wT", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hXvyqwRYHc6jPPB3F", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:09:45"}
{"_id": "Zei2LyJF3D9yxMHE9", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f->link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | f->link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rAFiymWMu8zuCv8HF", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-22 10:35:38"}
{"_id": "aaMXF5NrMCM7dnrCg", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \nall f:File |  f.link implies  (no f.link.link )\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SunM5dn8TL5zg3JTX", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 23:49:58"}
{"_id": "66uyo8KtmCMJYuEJj", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 16:46:39"}
{"_id": "bXkqADLu7NbWtyRTC", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all l1:File.link | l1.link = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Teed5JaE8L3L3JqMZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 17:39:28"}
{"_id": "ePh8jXn8ATFQ4XbBC", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | lone f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RWEFk6f2MtYEBx8Mt", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-23 15:35:06"}
{"_id": "sgvLgBJhe8m8sH9aC", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  Protected not in Trash\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vY4B9uvPCaWZLcLw8", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 15:07:30"}
{"_id": "WgDFXLxk3hDYBXQoj", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f = Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.Trash\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tsome link.Trash => ~link.Trash\n}", "derivationOf": "Ln3svhoGFAQYTYWRx", "msg": "& can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 11:28:43"}
{"_id": "fwENoRtixYf5bL7FJ", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,g | f->g in link & no Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qtMLQWkNi62KFb9zm", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:43:31"}
{"_id": "XFoNH6fwPuxFubKdg", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "GX22MJh8jppSDu36D", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:55:57"}
{"_id": "ix8FJ97sdY8EGWc4z", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GjXvcacY9Cm5eorKh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-24 23:37:32"}
{"_id": "qnMdB7zaMGnrDv8XX", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { \n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CZmhZfoxSQfTBowDF", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-13 19:06:19"}
{"_id": "Tr5kWBoWuBSAiGyR2", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:27:43"}
{"_id": "MqEkDykr4L4HNrm6t", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7Yi6AjAjowbh54HXK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:24:03"}
{"_id": "QR8gCks7CtJzbALom", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "KqvQWtvhLykut6JjZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:04:30"}
{"_id": "6mFFeHDNSu3vfeshq", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zXZtWphPXYZ45h2Nb", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:11:02"}
{"_id": "sE8zsSkr2Js4v3QWL", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f: File | not f.^link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TNTvTWhQXXi3LRntg", "msg": "This expression failed to be typechecked line 69, column 16, filename=/tmp/alloy_heredoc8818270268975392427.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:30:55"}
{"_id": "ix2yFBcDwxzQcqdkd", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "hrmWsuj6R9pWoE44Y", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:43:51"}
{"_id": "ofKNS2zWKq73Y6qZk", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno Files\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6vwsu5sSPJH9DyWzt", "msg": "The name \"Files\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:24:26"}
{"_id": "dSj3EPiCKRWNN8nXR", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RpZCfM4om6LSiYpes", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:03:53"}
{"_id": "4z8SBg67r8NLeP8xg", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uMt6wTtvWSHtbod92", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:26:43"}
{"_id": "gwqdRw7kgS5wKoBwY", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  \tall f:File | f.*link in Trash\n}", "derivationOf": "jZFpwGCjqgYb74PNe", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-30 00:02:19"}
{"_id": "xKutot8pxBk5FqppK", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n    \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n  \t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.^link in Trash \n}", "derivationOf": "iipwzahuPMGuccfnc", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:42:27"}
{"_id": "MAk6TE75JHMZYhz8t", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tno Trash.Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link & File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "b5m6gk7LY9yDgbKt9", "msg": "This cannot be a legal relational join where\nleft hand side is this/Trash (type = {this/File})\nright hand side is this/Protected (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:56:08"}
{"_id": "M9RHtDnJfJFwnv4Xa", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1 : File | not in f1^link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "p34QNBhALpeuNQKws", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:15:22"}
{"_id": "WtwiP7AcHK8NFXsjM", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "aoxKtMcMtrFTk2WzX", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:56:17"}
{"_id": "w43kx2dtqbii34dZE", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash & Files\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BdjopviBFuTXQJHjZ", "msg": "The name \"Files\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:25:34"}
{"_id": "Pm4wAymxTYuZgxcSu", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Hm8Ct7TWpthHWPpNB", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-30 00:06:54"}
{"_id": "rgCKtZmgTGYEjkxEC", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   all f : File | f.link & no Trash  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yEZbrkMogShiR3geL", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:11:23"}
{"_id": "h2EDDzd2Q8m8tpbN6", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File->Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JgJDdyNBvDubDCGz9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-13 18:59:44"}
{"_id": "8ma8KjQ4ikYzD5Xxf", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1 : File | f->f1 in link => f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | f->f1 in link => f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2WDm6Xy6JWGnoeXAz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 00:56:14"}
{"_id": "okCHu87M3y5X4oWrF", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cthX3dgrYiRnRcSWT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:20:41"}
{"_id": "9QW3gyuFipWs5g4MW", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n\tFile & Trash\n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TEKwh4ktRfRDBS3k4", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:36:59"}
{"_id": "ZXxyX4vKjGEsyzeFJ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tTrash in Trash - File.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no (f.link).link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "PtQ4Lu46Fkpcf7rma", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-14 01:42:33"}
{"_id": "Hm8Ct7TWpthHWPpNB", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MtLYczHijQNsySqPC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:06:34"}
{"_id": "6Rf8LvtWNyTitgmXF", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  no File\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "t9MynLmbDTR96H5BQ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-12 16:53:39"}
{"_id": "HCNd34Ss9kZFtumCa", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all l: link | \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f.link.link in Trash\n}", "derivationOf": "Jme4vxtJPQNyZydSB", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:47:45"}
{"_id": "rBuG5XTE9kLRQbsxi", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "Eca6dhFWCY38S4mBj", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-18 20:44:59"}
{"_id": "TunkD7T7vCDXBcmg8", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "F3dNMN4rmgucmgH8M", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 18:31:11"}
{"_id": "Fz7gEt6EpGZXtzuhQ", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f->link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YeC92BWDCAxzYmNx8", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-28 09:24:33"}
{"_id": "QTeYteHdrFM4FoMwr", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wDoepY5fyEQ5mircX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 11:15:15"}
{"_id": "G8jfi7soYeaJvAmXh", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\nno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yoP2kd7eQgdD3tqTP", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-10 18:07:29"}
{"_id": "CZ7LfCs5t4f78vTna", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File-Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in File implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tWDgtuJoLBLSFCJtK", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-12 22:38:44"}
{"_id": "duKcfxLJQfKaoLSyf", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone f<:link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "A7mSHkKDmmk3nk6ED", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-15 00:02:06"}
{"_id": "7nmwQ5n77a37PoEqi", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Trash - Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CHyoJacYZ9yEuiAsa", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:38:14"}
{"_id": "748zT3mfHw89iTcrN", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link:>Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink.link in iden\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5CfaY9ACXf46Rj2Mh", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:18:27"}
{"_id": "YTfenmB84oLiQrJMQ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "s5yLNCn6Ghe8Q2Yhs", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 14:29:30"}
{"_id": "HJdWp7HjN7LDRFwyQ", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kiSXwe8mfBQY8rAzm", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:22:10"}
{"_id": "aXsksZcnKH5J3vf2T", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\t\n    all f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n  \t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.^link in Trash \n}", "derivationOf": "HDB3JyN3XbYcXTd98", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:41:17"}
{"_id": "NtDjMoJerSMLxgiQT", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1 : File | f->f1 in link => f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GxiLRt2HsgQi3Ro43", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 00:52:27"}
{"_id": "oisaoywPPSgKeh7Re", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 18:16:40"}
{"_id": "mLDopexChJpQKQjDK", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link in Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "RGeppaD2cL9WFsPyg", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:09:37"}
{"_id": "6t97fdKkCkPbTYFuW", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "s73P3ybuvG5FmFzgF", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:31:51"}
{"_id": "JBEYcG87WzmF3ZHac", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FYwWyBKX6B3RpdLKh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:25:12"}
{"_id": "PR93aGbzBFM8ZMeAn", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1 : File | f->f1 in link => f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | f->f1 in link => f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f, f1 : File | f->f1 in link and f1 in Trash => f in Trash  \n}", "derivationOf": "KHj6db2Ejfm7Eshkr", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 01:01:39"}
{"_id": "LznaxFjGpnQpeCJaH", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:23:53"}
{"_id": "roKGqYvJwFkjbjaJK", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n  \tno Trash & Protected\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qRXXBJ7PCMooSPN3L", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:43:30"}
{"_id": "pKTG6Q8skgHjnWZNB", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  Trash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TSxcbop6ebgYAN9uq", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 20:11:50"}
{"_id": "kyW2tc6Pr92zjnMB8", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in File-Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno (File.link).link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "NpDWQq4urboNEHxAz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 22:03:22"}
{"_id": "A3twkyu5zMh2Tcqko", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kGu6qj9GS8dpcScWG", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 01:06:05"}
{"_id": "JomN2fntitrPJoZYp", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno File\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EmYHFxB7iQrH2wXLQ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-22 10:27:16"}
{"_id": "7buSEpLaFa5mpzaDX", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8BM5cNBARuoxSv8MZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:03:45"}
{"_id": "2Km3Zi7QKRDqS7C9d", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File / Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AadwFhsJf7M72FJzQ", "msg": "The name \"File/Protected\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:33:35"}
{"_id": "7rFsMmygxYJXHRBuT", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  lone File.^link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PZJsMNFcwnJkqXytF", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:32:17"}
{"_id": "kbyBxxNtPwYRKCXKB", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n not some f : Protected | f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n  all f: File | no f.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9QjW776bjCLj4tzZe", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:14:45"}
{"_id": "gJ8kToNTufMFfjRXM", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n\tTrash=none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aFkLXMFBPgsC5M9nY", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 16:18:47"}
{"_id": "QpDJnZKGkqwNBkD8R", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "qwN2FhgH6k8noZNgK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:26:20"}
{"_id": "ukxo6gRnmkZZEHFqJ", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f->link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xv7CXaCi6zWKSRwZG", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}]}, "nodePositions": {"File": {"x": 598.328125, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2020-10-22 10:42:19"}
{"_id": "H2oJRGBvrgZ2DhZna", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hSES8KHcRB7JTfCjF", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:36:00"}
{"_id": "PBqSvckSTMTF7bgZK", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t : Trash | no link.t\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : Trash | f.link in Trash\n}", "derivationOf": "3auE2tmRiQW6h9EbS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:48:44"}
{"_id": "MXQnfee2LgefTBv4J", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,x:File | f.link = x in link implies x not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4oQCzWFMTfZfKSdCT", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:48:51"}
{"_id": "ZHzxNpSMhc8sfKNbG", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n  all f : File | some f.link implies no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : Trash | f.link in Trash\n}", "derivationOf": "MXFnPpxqg9xmpv6ZX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:44:00"}
{"_id": "usJzRXFTsbxgBMuyG", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file : File. | file.^link -> lone file\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AdYEW4M2sZ3pcPtrE", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:05:33"}
{"_id": "EL4Nb73RKLyhq4K9w", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tbfqktZQSoBYvErgA", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-14 00:12:52"}
{"_id": "GtEo5kXj4ALgjo46e", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  lone link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "Gyc2jKRCd3PyjWetg", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:16:02"}
{"_id": "r4mPur2DAeNETrJc5", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash in Trash\n}", "derivationOf": "XCvBg3iYT5LTCR3yJ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 11:29:30"}
{"_id": "4yMKSJsSAgeYj2Gup", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome File = Trash \n  \t\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pikqTkKSfXKDTfqQX", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:09:09"}
{"_id": "vCAeQuG3HF5ZwTayE", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all link\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "o9foG92AMMmWcra86", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:01:32"}
{"_id": "SZnQfj3YvaypTCaxN", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some f.link implies no link.f\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "C6DHQofsSgg9xZna4", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:53:16"}
{"_id": "3FvKND9HaG9GtApv5", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5tax5fvGBxKCDhLm8", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-7 18:59:32"}
{"_id": "YAyNZeCDF4v5Yfg3R", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PHwighXPhhFE5xS4x", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-8 02:27:40"}
{"_id": "v9M9BZ7qrho3BSvZZ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Gue2vtjznEsnLNBhP", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-30 18:15:56"}
{"_id": "BWhPiXnNi8JN3TZkf", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some f.link implies no link.f\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f.link in Trash implies link.f in Trash\n}", "derivationOf": "MEyGYMANRDbYqee93", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-23 15:37:12"}
{"_id": "W86kGCCZkkhh2nJ9J", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "82Cgnvtnu2CqGAfHr", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 21:22:07"}
{"_id": "pAd5r4DnbhoNQAqLA", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall t:Trash, f:File | t->f in link implies f in Trash \n}", "derivationOf": "FKCY8YRcPmoLAn3TH", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:01:22"}
{"_id": "KCLYBA3RdQeyQ9m3J", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f->link in Trash\n}", "derivationOf": "dJDLriNXKaoPnDx7Q", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:44:57"}
{"_id": "Yg3cYqfAPeqtahtE8", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | some f.link  implies (f.link not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.^link in Trash\n  \t\n}", "derivationOf": "Y2wXtdQCpqGRmM7Tx", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-30 00:10:42"}
{"_id": "CNryKuLzN2Sg5GQuM", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some f.link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EDiWy58PvNjrEvLyt", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:32:16"}
{"_id": "RuC55gaN8kik5jBng", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iWSvA9BDES94ngiuR", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-6-15 12:58:30"}
{"_id": "rskYabrGKK5ZADQna", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tFile = Protected + Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8oBaxt7KdFf45RC9S", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-23 19:09:21"}
{"_id": "mcuQ9nipNoCgJNJi8", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some (File-Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GJcs6HHzroqnCw4gB", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 21:22:45"}
{"_id": "qGGQKt5eEKRktGuiB", "cmd_i": 9, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n  all f : File | some f.link implies no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | some f.link & f in Trash implies f.link in Trash\n}", "derivationOf": "FbQHpmpw4g9sJ4gao", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:38:19"}
{"_id": "zkivcLXbJ5irGyXjo", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "WnZn898zxawyWm6SA", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:26:29"}
{"_id": "EMERzb3rcNW4o7pTN", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  no link.f  implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EhZRFFgFE2ri8oxmR", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 22:56:45"}
{"_id": "ybaY4uxiqC39hqj2W", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all f : File | all link.f\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Mw4eMsHxuGhSa3gnN", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:56:13"}
{"_id": "KCNPFfrm6xEgGMX9X", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-4-28 15:10:30"}
{"_id": "X8mQm3mpXquJPABZk", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  File \\ not Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n  all f:File | lone f.link\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cuuoKN2C9ZEeNs2CR", "msg": "Syntax error at the \\ character. HEX: \\u5c)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:43:00"}
{"_id": "zzc9gXhvwwGngHz4K", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ATdJ6BexcBWprRN2Z", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:19:50"}
{"_id": "rYnNJzSPeNrSSf9oy", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:Protected | no f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4azo7HLE8rYNeDwsJ", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 18:43:48"}
{"_id": "pDcs3yNjTFnMmREJP", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iNy2bjpLZiZGXmbCm", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-18 11:40:29"}
{"_id": "ysAWToJ5uv7R244ew", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6mFFeHDNSu3vfeshq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:11:37"}
{"_id": "hi3Yg9z5RfAGvw8zz", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-7-8 01:58:06"}
{"_id": "JueE3gMw3Xr7YbkXh", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (no Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 19:33:28"}
{"_id": "974qH6KQ9gWybKFSZ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n\t File in Trash\n  \t no Protected & Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7PQSfJvGFqa5t4P4c", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:29:39"}
{"_id": "PDyeQiTbzAt4HMyh9", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { some File.link -> Trash implies some File -> Trash\n}", "derivationOf": "EpxmtACWuiLm7qybf", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-14 08:30:34"}
{"_id": "Mvi7zSS3bH8rhezEr", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall t:Trash | t in none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HZFfZ22p69SKsae2i", "msg": "Subset operator is redundant, because the right subexpression is always empty.\nLeft type = {this/File}\nRight type = {none}", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-6-15 19:37:46"}
{"_id": "wsmGvTpgsaFFvmqjm", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink & File.link.Trash\n}", "derivationOf": "m4SdwJhH27Hz2o3SL", "msg": "This cannot be a legal relational join where\nleft hand side is this/File . (this/File <: link) (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:02:30"}
{"_id": "vcCeSLginaab9qcwM", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tlone Trash - Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PMdrf5JTrAJ7AQ8uv", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:40:24"}
{"_id": "gYxp6ztpCaT4ynaeH", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x : Trash, y : File | x->y in link implies y in Trash\n\tlink.Trash.link.Trash\n}", "derivationOf": "c6qkfFuHjr5CgJtc3", "msg": "This cannot be a legal relational join where\nleft hand side is (this/File <: link) . this/Trash . (this/File <: link) (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 11:32:20"}
{"_id": "3otG73wWb23qEjiQY", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  Protected  not in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TxtA9jbXYD9gAgzam", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 23:33:21"}
{"_id": "YXQfvD8N4XiBdNzc2", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File-Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | some f.link implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iFQANih9BSTdJtGmN", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-12 22:37:40"}
{"_id": "mnLe76dRJAoRyZJGZ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t not Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "5hHovng2EHukF6rJW", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 10:05:43"}
{"_id": "ipBruPNgHghED5SEK", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile.link in Protected\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no (f.link).link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash { f.link in Trash}\n}", "derivationOf": "e5Fd7fvS3b66q7nFS", "msg": "The name \"f\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-11-14 01:31:41"}
{"_id": "M8Wtu9tqdHZ6zm6jJ", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "J2x7RWEhT59EHjAXK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:26:18"}
{"_id": "CafHFxQPrPq5zw8kx", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "z8ruF5yLmsXHaaGKs", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:57:07"}
{"_id": "FbXyqZBGccu8HKYuN", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "5EDDesWaS6BD2eHvq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 01:08:36"}
{"_id": "hZa4DAjT36K9QifHe", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-5-4 21:16:59"}
{"_id": "bQZ6k9iey3Fh6HAzu", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link & Trash .~link\n}", "derivationOf": "Rba2qYNLgh6TvWqwe", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:03:59"}
{"_id": "a35qDwYE9rgXMaRJE", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File - Protected | f in Trash\n  no f:Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "i7G5opdoaNfoP4xmt", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-10 18:05:40"}
{"_id": "PtjBCQ4YJZkZGKbBu", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Trash - (File - Protected)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ciovhfJok5DTLFioK", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:03:08"}
{"_id": "boWts2JMa2eXpWReN", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hW4ivhW3yMjwhRdLn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:06:05"}
{"_id": "RDNZx7MxgtHrnL4Bi", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rZMTHi3vqZk4mXh9X", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:38:34"}
{"_id": "P7RuhPgufcmbDKPaB", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SB6SLRLpyXnt8jP3r", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 14:45:44"}
{"_id": "HzT4D7wjwJ7t92rWk", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | no f.link in Trash + f in Trash\n}", "derivationOf": "wGMbrjjLFhXi2X7ZP", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:27:59"}
{"_id": "LEPKAx53wpQc9Tcqd", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hZa4DAjT36K9QifHe", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-5-4 21:17:16"}
{"_id": "Bgqx6DmW3rsKguwcr", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f in Trash implies f.link in Trash\n}", "derivationOf": "3dQ2RpmqG43iFARJH", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:32:58"}
{"_id": "EhoX4N59CGvbR5MwA", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jBiFM9c8ZzPBjEH3N", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:55:35"}
{"_id": "7uHpYgX8C6EcjCEST", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t : Trash | no link.t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rwgS5FsgrQis9qSBs", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:35:40"}
{"_id": "gwwAGp9izE6MguCAk", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File \n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected  in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no File.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link.link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { some File.link -> Trash implies some File -> Trash\n}", "derivationOf": "PB9qPuKABz7e7mbTd", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 08:44:04"}
{"_id": "WLrKKqLR8m7kgTEmC", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile.link in Protected\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no (f.link).link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "n63KKtZkr5mg7Hmxz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-14 01:40:50"}
{"_id": "mz3F9HY9vaPLnAmbn", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | no (f.link & f) in Trash\n}", "derivationOf": "rpMaTWTwCCgnbeXDm", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:31:23"}
{"_id": "68wsbkEWGqRBbwCFR", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "n6JK37qKFnqam7BHh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-18 17:44:09"}
{"_id": "cH9EyP47fp2iDHrEm", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link . link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  Trash <: link.Trash \n}", "derivationOf": "CAFb6Co6E9vvdRffe", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:02:04"}
{"_id": "RstwXn4W5GpvXeb3n", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  some f | File : f in Trash\n  \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nn3DsQMg95dB7XNc2", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-2 21:13:20"}
{"_id": "9SR78JziZw2XtpZQw", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "phX6KHX65tQxeTNRY", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 11:07:04"}
{"_id": "QczPJhGSSjEP5KC4v", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link . link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  (link.Trash) :> Trash\n}", "derivationOf": "obrgt4uY5BBRW4dbd", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:02:48"}
{"_id": "SPeqEdEXZx4oxQ3cS", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n  no File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7v7WZ7mhx4FKDxXui", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-12 16:54:35"}
{"_id": "7RpeaHdWyitCiSo2e", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tlink not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yEdwEPPjuABkB4fhE", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:46:39"}
{"_id": "WGq7MJ5FBMvtBxS9q", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no(Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\tFile - Protected in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \t\n\tlone link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NYCFf9wA5jtmG6dKC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 00:10:00"}
{"_id": "7FJuksd5gmCb4HcaT", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LCfBFKKMPLmsuZqw6", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:03:51"}
{"_id": "h3iExjinnNkgBLvTA", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \talways Trash&(not Protected)\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "w9bwMBmzKpfNXAwTg", "msg": "This expression failed to be typechecked line 50, column 18, filename=/tmp/alloy_heredoc17351342706202238204.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:13:58"}
{"_id": "AwvXAABPFGxaZv8RF", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aqL5wbJJctSL9ALHb", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 17:11:06"}
{"_id": "nNkfS5bH8udKqwYHR", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "pB7Y9ALuWZu5o9imj", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-4 15:07:06"}
{"_id": "bxmyKXYvR4HhG3FdY", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  File = some Trash \n  \n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tHzYTzNar3EcC6fef", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:04:07"}
{"_id": "phX6KHX65tQxeTNRY", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iH5ZsMymvixjcgxwf", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 11:06:21"}
{"_id": "x3HNHjWqoBWA8anhk", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(no Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iBEyRhde27SsN4uE9", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:10:14"}
{"_id": "z6Pw2wikSRoq9sTfc", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "M5RxefbZjDGB4z54i", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 14:54:28"}
{"_id": "RD3aywKZeNZByxcNe", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  all f : File | one Trash\n  \n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tKvkxLHSR37t9hrde", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:06:26"}
{"_id": "Z8SvXu5ftBXuDKtDY", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all file: File | file.^link = file.*link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "R8o4jWhWn2jC5Z3LE", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 12:25:10"}
{"_id": "edkc52yc9ftkFY5Am", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f,f':File |  f.link != f'.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3v6bsH3WPNcWS4mK7", "msg": "There are 1 possible tokens that can appear here:\n[", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:29:18"}
{"_id": "2e4qrHAXk2ghccZRT", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File-Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "r9dWajyCKdXjNx3S4", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-12 22:37:01"}
{"_id": "uyxgAdh3umturPyDE", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (link.Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | \n}", "derivationOf": "Pv2EkzSvy9ZfvyXEX", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:50:47"}
{"_id": "Z6nrzEtKnEfrS6RPE", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "H9g3K3nDA3rHbKebX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-21 18:27:36"}
{"_id": "wXkaJNiSBG2wYqdYS", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EQovYWFqwMs8LRMat", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:40:42"}
{"_id": "JqbX4doTbCtwAcQdr", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash - f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PcBGLQMfXxBCqenBJ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:08:26"}
{"_id": "EtNSdKcPjiNLPiKy2", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File / Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yS4RCdr6Y7RGpj4Yn", "msg": "The name \"File/Protected\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 20:17:38"}
{"_id": "P86GXHAkgf2wH8ZqQ", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n}", "derivationOf": "sT9aDPLefBQ5jdzKX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:58:06"}
{"_id": "8cEMEaKfg6WxCQWQr", "cmd_i": 3, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "cqwoJS857tXppwMHB", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 20:06:32"}
{"_id": "QZiyY9BjF4crZ22tq", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "us9BR3aP2mzubSkva", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-12-2 12:04:18"}
{"_id": "3cnGhRzCbzRmLuhcu", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall not Protected = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8md3xHcHSfLJ2ikF4", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:32:53"}
{"_id": "haYuTPhPmwcWzPJos", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   all t : Trash, f:File | no t.link + no f.link\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wdSy4dzqCPHHZuj7N", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:15:27"}
{"_id": "DFKi4oxYmenAnhTmj", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all f1,f2:File | not f1 in f1.link && not f2 in f2.link && not f1.link = f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PoG7iPsS3SyYRgfyM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 17:17:14"}
{"_id": "JWifduFAdTdqZLnnh", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File - Protected) in Trash  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "MBEDA3hEb24XYF5qL", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:12:57"}
{"_id": "K2xxJzoG5ykLocKui", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gRSsFZCFpFT6oqEJF", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-12-2 12:01:10"}
{"_id": "iomcKcsi232p3fWgj", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "z6vdWk8fbonafS7qQ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:21:31"}
{"_id": "jPdyxefQWsRNeGYyH", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Xze2JNMstjyHpf3TW", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:07:57"}
{"_id": "9jy8wRLqaDYTYfiRQ", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tFile.link.Trash\n}", "derivationOf": "zjJ3RnNeg3z3X2Rd7", "msg": "This cannot be a legal relational join where\nleft hand side is this/File . (this/File <: link) (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:48:02"}
{"_id": "ajyW528EHw3rWJrvX", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \tall t:Trash | t.link in Trash\n}", "derivationOf": "ca3vSuRJsS5A3Kj36", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-8 18:31:41"}
{"_id": "RMEwP8KGXA4YfZ6hN", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File-Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f.link in Trash\n}", "derivationOf": "roZwzRCPgFJXR488w", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 22:40:57"}
{"_id": "GtgdGwqey8rEb93Bc", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all fl: File.link | set f: File | fl in Trash and fl->f in link implies f in Trash\n}", "derivationOf": "rJsGy6ku4KszvzmXa", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:18:27"}
{"_id": "EBRbS3NTqG4KtR2QW", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ga6wAbd4JgxJAkKcK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-10 15:10:50"}
{"_id": "SFjYaY9n8cms6Yy74", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-22 10:27:32"}
{"_id": "4zCkmKyyTGNw4maeH", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t(not Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "3ecWhC8BxQGhieZYc", "msg": "This expression failed to be typechecked line 50, column 5, filename=/tmp/alloy_heredoc10485072881017693616.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:14:33"}
{"_id": "MoKGuKRFfF2FawfRB", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tno Protected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BcogDrZThReDtcRit", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:36:34"}
{"_id": "J6LmLrQZcpJxKC4Hr", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    \n  \tall f:File | one f.link\n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link implies f1 not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "5924oP53QNDdxHd4C", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:39:18"}
{"_id": "w2gDLENv4zKyKesmN", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f:File | no f.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:Trash | f.link in Trash\n}", "derivationOf": "HecryuP6xYEaF35tc", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-24 23:45:42"}
{"_id": "jZFpwGCjqgYb74PNe", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.^link in Trash\n}", "derivationOf": "DfyBPNvHfTBqozNf4", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-30 00:01:51"}
{"_id": "gFZF53BpFLNJyDRM4", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\nTrash = File - Protected\n  inv4\n}\n\n/* A file links to at most one file. */\npred inv6 {\nno File.link & Trash\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wv2ynvCXWNPdFbTtg", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-10 18:03:27"}
{"_id": "T98acT9PAgSMA9FAs", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  some File.link\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zbhSt7au7zmqpZLNR", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:06:53"}
{"_id": "SnRNy7XGKoHENpKHH", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n not some f : Protected | f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File.link | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ufABgQ4b4fa2YSAeA", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:09:27"}
{"_id": "o8zC2zwJo9Hdw2H45", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tProtected in File & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "W6sdShDCc5MwuHmx4", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:35:56"}
{"_id": "kC4dE5GYX4eYRPxSm", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some link.f implies no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | some link.f and f in trash implies f.link in Trash\n}", "derivationOf": "DutHZgR37KrsTeber", "msg": "The name \"trash\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2021-1-13 16:52:20"}
{"_id": "oPWkanuqCbaisvsnc", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "dQPQRjkbA8vHYXLxK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:43:35"}
{"_id": "v6zYLYqsh623kYKyA", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t : Trash, f : File | no link.t\n  \n}", "derivationOf": "34pwsjfifAbJnRJWt", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 16:38:16"}
{"_id": "8o9iAH2vJb8R3Tk6N", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n\tTrash=none\n}\n\n/* All files are deleted. */\npred inv2 {\n  \t\n  \n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DtZye95jKYoNDNErJ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 16:20:24"}
{"_id": "6aZSj4AKWPvhv2dyK", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "66uyo8KtmCMJYuEJj", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 16:46:57"}
{"_id": "T3QacnxNN8pGn8hqK", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tlone Trash -> Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rDXC5CocBcQ82RsCH", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:46:07"}
{"_id": "TDjY7SLLkvWpMzLJ3", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 14:58:07"}
{"_id": "RS8zmqSwTGHiHBz8m", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tFile.links\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "nnxsQopPdmKRNRAMg", "msg": "The name \"links\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-1-18 17:52:57"}
{"_id": "A8HucFqFtx7iB3gvw", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { \n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RaDiYvYfrhh8xSmtC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-13 19:00:31"}
{"_id": "4dQTfKjsJL37ZFa33", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tsome Protected -> Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2sFbpxpYka8wce3Bv", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:46:14"}
{"_id": "97QX4XYwoWoErXpKe", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f:Protected | not f -> Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wqtrRgiqC3Rhp4qQo", "msg": "This expression failed to be typechecked line 50, column 21, filename=/tmp/alloy_heredoc6424138411367147229.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 18:49:29"}
{"_id": "XMWKdTkhbHux7fNJ4", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File \n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected  in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no File.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link.link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n  link.Trash in Trash\n}", "derivationOf": "uSKpAR42EsDQ7HYmq", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-14 08:46:51"}
{"_id": "vwP6rtoR2Z9uJkp2p", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  File = Protected\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bQoFmoNrh4kkNhsCA", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:19:11"}
{"_id": "r9Ww2g8zLdaae5hHg", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f = Protected - Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ayojB8LdXBG2w7Mdm", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 22:47:46"}
{"_id": "nNQZAw9BLJ6BKKoK7", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | one f.links \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4Ks6zQDYDsgatMf7c", "msg": "The name \"links\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-2 19:23:51"}
{"_id": "CEMobPwZJ5qZYGeyx", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlet x = File.link & Trash | x.Link in Trash \n}", "derivationOf": "sxkZydENRrJzQcLZY", "msg": "The name \"Link\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-30 18:39:20"}
{"_id": "eZMjLMyA8MxjQyria", "cmd_i": 8, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | some f.link \n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "nDSjedtJjw2EMg9nb", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:32:52"}
{"_id": "FQq82o5rEo9xDuDWw", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\nall f:File | lone f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ttpSrDkqmza6Ed5Kx", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 23:40:24"}
{"_id": "CNc3YwtrjQBN3m5Mi", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:27:19"}
{"_id": "Jv7xdapB6ZxWizT9i", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fCC7RAR5TX7eE8M5E", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-30 01:04:51"}
{"_id": "STX5BmtbwJDmuYwHP", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no(Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\tFile - Protected in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HumQoPrr3Gbgd3j9Z", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 23:42:51"}
{"_id": "8Q3fKNAeS9Lf6pw5b", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZvQSLPfSKpFxqbohk", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:20:21"}
{"_id": "K3HHmZwfhKG58eXNb", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t : Trash | no link.t\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : Trash | f.link in Trash\n}", "derivationOf": "PBqSvckSTMTF7bgZK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:48:47"}
{"_id": "jmCaYuwk3WxxkwjwZ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "9aDJTphHXYHBzuty5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:34:52"}
{"_id": "SX6PPziAcd8oCdRFn", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  File.link.link = none  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  File in Trash implies File.link in Trash \n}", "derivationOf": "9yhKjECn7hH9MPgYq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 17:51:43"}
{"_id": "bS4xZRcahrGes3m8L", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.^link in Trash \n}", "derivationOf": "wK4r7YDGnfj2chjtR", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:37:50"}
{"_id": "Mx49synujJcTk5WGA", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Protected :> Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bNrhqHyzqWjpCgcka", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:53:13"}
{"_id": "kiKeoQm79PpDSsrJm", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t File.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sPNYpbPnq4FXKEz9k", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-11-14 01:13:15"}
{"_id": "F9SR7wff4WTyfnKWj", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n }\n  \n  \n  \n  \n}\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\tno link.File\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yZ3DMPdSGxfqCTYgs", "msg": "There are 5 possible tokens that can appear here:\nenum fun let open pred", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:54:17"}
{"_id": "gaLqWQZbTXRFN88p7", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n all f:File - Protected | f in Trash\n  no f:Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\nall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "a35qDwYE9rgXMaRJE", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-10 18:05:44"}
{"_id": "fqaYcfwNQSsjrhofS", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t : Trash, f : File | no f.link \n  \n}", "derivationOf": "S3TYRpSPbfdnQYGWd", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 16:43:40"}
{"_id": "64rE4mKyYTJa3k6Dt", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 18:14:55"}
{"_id": "82XhX4koqfJmyfGhp", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n\t File = Protected + Trash\n  \t no Protected & Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cnjTZoF9GEC2D7T3j", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:26:51"}
{"_id": "MFi3zRgtjeFgo5puH", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tnot Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YZRfkiHsvJQzTndm3", "msg": "This expression failed to be typechecked line 50, column 2, filename=/tmp/alloy_heredoc6278457294481733605.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 18:41:27"}
{"_id": "QgqjFq3KJ2d3QNf7n", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  Trash.link in Trash\n}", "derivationOf": "SRwefMuYan5QLEmTc", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:34:10"}
{"_id": "s73P3ybuvG5FmFzgF", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n\npred inv7 {\n\tno link.File & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Ztfi8hdpjP8boyjyg", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-30 00:31:09"}
{"_id": "2DHM2m6hHc5EdBMLZ", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno f:File | link.f & f in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9wgGBrQ9GzNwmyCH7", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:20:22"}
{"_id": "9rPJ42fi4jZpB3SDc", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  link not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bXG9AbTjLS9p9GMuP", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-24 23:42:40"}
{"_id": "Fzhm2WYFR758Y9vpR", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \t\n  \tall f : File, l : f.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall l : File.link | \n}", "derivationOf": "De4pCDn4SP9ZgspNo", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-28 09:31:17"}
{"_id": "ouCqRRk5FaLKD67Qm", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  lone link.File\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sYhwhKCzQ9qfPRhTs", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-24 23:36:59"}
{"_id": "7YWBTzA2469WB4Se7", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all link in File.link | link \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KqpAnCDCL3HTEqpxq", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:08:05"}
{"_id": "MoAuDw7zi9qtnxb5T", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f,f' | disj [f.link,f'.link]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YTB36WeNvKcjCLbYa", "msg": "There are 1 possible tokens that can appear here:\n[", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:31:37"}
{"_id": "6S4EnxdJnDxF9YsJR", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QCkXNiRFwTJ7fFv5z", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-18 17:43:44"}
{"_id": "S8MaCCzfDQRw6pE2F", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash | no Protected\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  no File\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XNmNFyKGJMXdKgEdK", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 14:50:49"}
{"_id": "8jDMDpk9jMbGEy8F5", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.^link in Trash\n  \t\n}", "derivationOf": "uNC7ZdWpC3sAmX9s8", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-30 00:12:53"}
{"_id": "uQ6eX39gCRLEiAsz3", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 21:02:38"}
{"_id": "wLQ4fftuyHNpPtZGG", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | Protected - Trash\n}\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MxTz4sp3nTMfebr9q", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 22:42:24"}
{"_id": "edTcrdtTvj4o3kpni", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "G9tkL59GuWhWixjnZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-8 02:29:38"}
{"_id": "oKd6YSSQwFt8FA9CA", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f = Trash - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zQ2grrjwSRHaPPGJc", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 22:59:00"}
{"_id": "F5JWffy36k9f64No6", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    all f:File | some f1,f2:File | (f->f1 in link and f->f2 in link) implies f1=f2 or f=f1 or f=f2 \n}\n\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link implies f1 not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "FngwJ7Q74jEdZwTnT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:43:38"}
{"_id": "b77LsHEPwKsGPnDhp", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZPGWvYwcG9csY99DL", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:28:00"}
{"_id": "vCTqjAgdQRghKvrzG", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall x : Trash, y : File | x->y in link implies y in Trash\n}", "derivationOf": "ML2ETZ5f2ZjmW7r2M", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:31:24"}
{"_id": "Y9GxaHvq8FdLaR62f", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JLGZ9BYv7CSsMYGfQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:55:42"}
{"_id": "EGPytyJzxyropE8oQ", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MFi3zRgtjeFgo5puH", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-22 18:41:45"}
{"_id": "T8kAjbFtRu5Kh3CPS", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1 : File | no link^f1 & f1^link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4kNWCsyipYxdaXSMB", "msg": "The name \"f1\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:12:09"}
{"_id": "34pwsjfifAbJnRJWt", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t : Trash, f : File | no f.link.t\n  \n}", "derivationOf": "PWKCQKTEcnnJdwp8A", "msg": "This cannot be a legal relational join where\nleft hand side is f . (this/File <: link) (type = {this/File})\nright hand side is t (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:37:58"}
{"_id": "QK9DAHWnqnXMhsBXH", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-3 19:45:44"}
{"_id": "PZ8ebpQs3De7kTN4T", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jDj3SQ7zrewhCxBCp", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-25 13:00:01"}
{"_id": "tKYWR8KqF9gbCGdTT", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t-link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "C22ZLJJeiKnjRQiHp", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:47:01"}
{"_id": "ey35SXesbW2MBr3G9", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f,f2,f3:File | f-> f2 in link and f->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f,f':File | f->f' in link implies f,f' not in Trash\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8S4jzMf2LHHYZBmsc", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-6-15 19:45:48"}
{"_id": "FkPHp4fDB8CngrTQb", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in File-Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no link in f.^link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QgD2MTTFNZFBHQ3EK", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2021-1-8 02:39:03"}
{"_id": "KivMouL7TZJdDJjLX", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "y38H3Y4Fhf7Z5Jyv7", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-22 19:24:54"}
{"_id": "yWgK26MHk9X9R3gt7", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "AwqxjbNLxdJCbJ7KW", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:02:47"}
{"_id": "MBEDA3hEb24XYF5qL", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File - Protected) in Trash  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "dRAfwwXtmnZ64ZB3c", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 10:12:39"}
{"_id": "yqWSumFz3bcd8XTTc", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f in File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2LQD7HFjBYqPwmWMf", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:33:54"}
{"_id": "j2DCfPnFK3evpGEeg", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "YE6Lu5nQkQPrz4jiP", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 20:02:21"}
{"_id": "jcsKSot8ThaDNdiyf", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash <: File\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Da4LNoeyPsHJECCW6", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:34:40"}
{"_id": "L3mFRJMwaf5dQxACT", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "uSZ8xdfkb9BAMFj8o", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:21:01"}
{"_id": "Ky2PNunHwXaJGtZoC", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1 : File | f->f1 in link => f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | f->f1 in link => f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File, l : f.link | f in Trash => l in Trash\n}", "derivationOf": "csZN2EixNQqYTwSXn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 01:03:09"}
{"_id": "K8s2Q4w44oYQwSKP9", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all f1,f2:File | not f1 in f1.link && not f2 in f2.link && not f1.link = f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gkNtArJp2ycYfP7QX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 17:16:54"}
{"_id": "aTRXzR32unDEtiRRG", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3cuktMhgSWzY7jmDM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 01:09:19"}
{"_id": "MzfAj8S2nLMs98ACe", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\n  \n  File not in Protected implies File in Trash\n  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bKdhD2gYrrLZNDGqX", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-14 23:29:02"}
{"_id": "Ys5Nxuz6bysqCywYH", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = Protected - File\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QmNwSdWaBdMGKaCsy", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 20:18:36"}
{"_id": "8awq4q3jkDLHpm4XT", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t : Trash | no link.t\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : Trash | f.link in Trash\n}", "derivationOf": "S3raPmwsJ3Cz2z6ui", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:48:18"}
{"_id": "9x8YQusnMEpJ6fpRq", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iffwYGKJPkAAHWQLL", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:27:45"}
{"_id": "NvnfiLkNisHXZb6Mx", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wogg3ZpfQLuSvTrbh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:27:44"}
{"_id": "NvuLrsLBTDmnF4cqQ", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1 : File | f->f1 in link => f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink.link in link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "S6SrJk2neu7TjXabd", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 00:55:15"}
{"_id": "Pr6x6seKytfY2bdph", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-4 03:49:43"}
{"_id": "CPK8H2Nn93S6Zqn42", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all link : File.link | lone link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zMgyb2TEFahCMS6dQ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-18 12:10:51"}
{"_id": "GC7BzMybjZSYqjqrG", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DF5kBtFPraj6E2qmY", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:05:00"}
{"_id": "7KD3RNzHoWgxRwHPB", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n\tTrash=none\n}\n\n/* All files are deleted. */\npred inv2 {\n  \t\n  \n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "zghTupHdHL4djKEeQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 16:29:22"}
{"_id": "y2BpXv4y3hJW9pXW3", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f: File | not f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f: File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | not f in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f1,f2,f3: File | f1->f2 in link && f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1,f2: File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all f1,f2:File | not f1->f2 in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kD2LWz4ePXG7QE74t", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-31 20:51:24"}
{"_id": "xemN6fNFHBNfu5PYK", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n    \n\n  \n  \n  \n  \n  some link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "XSLd725y3jzGwt5Qz", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-12 17:25:59"}
{"_id": "A4PxiFFDDmPGSja4G", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n }\n  \n  \n  \n  \n}\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mvMYjamokWvgfoidK", "msg": "There are 5 possible tokens that can appear here:\nenum fun let open pred", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:54:56"}
{"_id": "EcSeKqKjZFPRvM3gm", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gmXygRqKj95rYyMpu", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-15 00:05:01"}
{"_id": "rN83tF8d6d97Jstce", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QX8zMjuvWtxwvhKFP", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:30:25"}
{"_id": "HDWaDSP6pA9rfef7z", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n   no Protected = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n  all f:File | lone f.link\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iLDG4CFPyLrPckbQm", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:41:44"}
{"_id": "B589GpcoTJKR8FvPf", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "snPydEs2kYWDGm3pz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:57:36"}
{"_id": "kZ5AxamGCnMfwBhtK", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.File & File in Trash\n}", "derivationOf": "hT3aimryRDqcs3LYA", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:50:49"}
{"_id": "Jyi6BxnBrhhyZeR6k", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \tno Trash . link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "pZ5dwHnzhnmYFdmdf", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-18 20:48:08"}
{"_id": "yKYiFtGesdnMhnXkC", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no(Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\tFile - Protected in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \t\n\tlone link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  File in Trash and File.link in Trash\n}", "derivationOf": "QysErjRSybJSWpFYr", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 00:11:43"}
{"_id": "FXcq3nkL6S5Atgh47", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all f1,f2:File | disj[f1,f1.link] | disj[f2,f2.link]| disj[f1.link,f2.link]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gc9GGyM3zTP5xzPKu", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:57:10"}
{"_id": "FsgM8th8HXnbHXgEu", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Trash - Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qWeGxdGrfZMMX2QMv", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:42:10"}
{"_id": "BpWmMX926WwoEb2Mq", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile.link in Protected\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no (f.link).link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "WLrKKqLR8m7kgTEmC", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": []}, "nodePositions": {"File": {"x": 473, "y": 199.1999969482422}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-11-14 01:40:54"}
{"_id": "wogg3ZpfQLuSvTrbh", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EdJmkwWjmKBSRwXuT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:27:35"}
{"_id": "r5weoNhkw9ef42DNX", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2021-3-18 17:44:07"}
{"_id": "NzSx4ZSaMD6a7HERT", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n    \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n  \t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.^link in Trash \n}", "derivationOf": "aXsksZcnKH5J3vf2T", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:41:30"}
{"_id": "sBonAHnBw3hfQmhSR", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "M8Wtu9tqdHZ6zm6jJ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:26:30"}
{"_id": "wF5LrKJdx3EPvJCyL", "cmd_c": false, "cmd_i": 0, "cmd_n": "test", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\nrun test {inv4 and inv4o}", "derivationOf": "2a2GcH9gX8HF8k3iS", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:31:50"}
{"_id": "3c4QCo3aG4tjiBDEg", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Xo7qJY5tAvCGqcRdQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:15:39"}
{"_id": "WM2qvam248DtcvezD", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f . link\n}\n\n\npred inv7 {\n\tall f : Trash | no link . f\n}\n\n/* There are no links. */\npred inv8 {\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f . link in Trash\n}", "derivationOf": "85rvREtTpSXw5GLnh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:39:48"}
{"_id": "n8AcfsDaSCAX9MtYW", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ocf2nJHt5pzg7D9gg", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:30:43"}
{"_id": "yEZbrkMogShiR3geL", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   all f : File | no f.link \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FQ2Mje4rZEYR3ihZP", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 16:06:44"}
{"_id": "GX22MJh8jppSDu36D", "cmd_i": 0, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\n/* The trash is empty. */\npred inv1 {\n  all x : File | x not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}\n\n\n\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all x : File | x in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some x : File | x in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all x : Protected | x not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "KihLy8zJdzuYEcXpc", "msg": "\"File\" is already the name of a sig/parameter in this module.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:55:41"}
{"_id": "Xze2JNMstjyHpf3TW", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "45vRkd3MTM7Nu5qy3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:07:53"}
{"_id": "NnmLmjdncnyD2ZGzF", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "KivMouL7TZJdDJjLX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-22 19:24:57"}
{"_id": "kn4z8knohtobGW9En", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f : File | f in Protected => f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f, f1, f2 : File | f->f1 + f->f2 in link => f1 = f2\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f, f1 : File | f->f1 in link => f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f, f1, f2 : File | f->f1 in link => f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f, f1 : File | f->f1 in link and f1 in Trash => f1 in Trash  \n}", "derivationOf": "PR93aGbzBFM8ZMeAn", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 01:01:59"}
{"_id": "psLzjdEkajBWy9HKc", "cmd_i": 7, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : \n}\n\n/* There are no links. */\npred inv8 {\n  all x : File | no x.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "FCWFTKMxF7ksM6E3z", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:19:15"}
{"_id": "zikJ37wFecEDLCy8J", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  Trash->Trash in link\n}", "derivationOf": "yLMxiLimc5gWguMQ2", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:34:03"}
{"_id": "ppgn9YH4ezpfBxPHB", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "jmCaYuwk3WxxkwjwZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:35:49"}
{"_id": "ehL6iSjWNygJCRJ8s", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.*link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DX9hPbZGHns77zhEe", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:24:47"}
{"_id": "S3raPmwsJ3Cz2z6ui", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  link.~link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t : Trash | no link.t\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : Trash | f.link in Trash\n}", "derivationOf": "nkiwkNKyXoKBPzdNs", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:47:59"}
{"_id": "EPx5vrpAFozfNSdso", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t(File & no Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EJhGFWxNk9i7tAFmR", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:36:01"}
{"_id": "dvfaNP24wtnHWuZtv", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t(File \\ Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Z64B3qZXGrT8QYt8j", "msg": "Syntax error at the \\ character. HEX: \\u5c)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:35:00"}
{"_id": "SX9uThq79F7i8zLnW", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f : File | f not in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NjnLhkTTHw3jDhvb8", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 00:48:23"}
{"_id": "vEwCvapJ6t5vqfvDt", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile not in Protected => File in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "cyhnxinYo4jHe3bCw", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:32:14"}
{"_id": "23Ymx8gJsgAvhmDXQ", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File & Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KLxamu9jiK2gMsH8Z", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:28:26"}
{"_id": "MQMrLPnPZi9MGm3bp", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  some File.link\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "C42bwux76ZnXvSHsh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:11:20"}
{"_id": "YhgvoRTZ89aWMkX5q", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "t6Ld47Rk2tsX4ycfb", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:43:21"}
{"_id": "L5N3a5xTJHmb3LhCe", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1 : File | some f : File | f->f1 in link implies f1 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KB7k5xHD2CR27A47m", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-30 00:24:58"}
{"_id": "BMKwZQ3okaiFpGMpJ", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Trash :> TrProtectedash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PbNxtkHtg823myx5q", "msg": "The name \"TrProtectedash\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:53:23"}
{"_id": "8yaTa8GN9mXzJKwE8", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-18 16:48:03"}
{"_id": "mnFAEwDQLNNmYyh9k", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  all f : File | f not in Trash\n\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "a3FSjujpzjwNcbx6p", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-19 21:40:16"}
{"_id": "FSxqTmHwCLA9dffiu", "cmd_i": 3, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  Protected = no Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "8B4LSeJsNRs8xo96Q", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 20:01:58"}
{"_id": "Zy4xg9cGxN4AChLqg", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   File = Trash\n   all f : File | no f.link\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vLJTGEhKchm65oTa8", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 16:18:56"}
{"_id": "rZE5fHhYFC4CfPKxH", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  all f : File | some f in Trash\n  \n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AmHpmdYJvTg2SSjfT", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:07:41"}
{"_id": "jZnHaqjexcG9qWD9i", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n    \n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n  \t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.^link in Trash \n}", "derivationOf": "9ehJEJwQBqMXGHHu8", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:42:37"}
{"_id": "DsdNA8rhB5xdjgPkJ", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tall f:not in Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "qLHNHFLHy8TnSfx3w", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-22 19:19:16"}
{"_id": "uXFvdbCKKM6QmEaen", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.links \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nNQZAw9BLJ6BKKoK7", "msg": "The name \"links\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-2 19:24:03"}
{"_id": "RnnwWq7JGrLTno7Xf", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tlink in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3b9AiL4ceoENxoAyD", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File->this/File}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-11-1 16:55:40"}
{"_id": "yiLCEjGRfyH56Nk58", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LTtJv5EhtPqPCjgpS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 22:25:22"}
{"_id": "DF5kBtFPraj6E2qmY", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "42oNbDDigR36L6na7", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:56:21"}
{"_id": "r77m3dJkKgZHwJh8P", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "49sAaoBohr62pb7sD", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:29:55"}
{"_id": "b6CkDwfCCW3x87bmx", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  (f.link) not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YFjS4vL36amJRNBNY", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 22:51:48"}
{"_id": "WBf866W9yKj8A7NhL", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f->link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ukxo6gRnmkZZEHFqJ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-28 09:24:22"}
{"_id": "f5T7giHvcj6JJKg9b", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tFile in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2n4RDXJPQ4LumHG8r", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 20:13:00"}
{"_id": "BcqkumZPWpAYXf4qe", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all disj f1,f2:File | not f1 in f1.link && not f2 in f2.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ky4RQpR9JrJoXYDSi", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 17:12:38"}
{"_id": "pMTbTq5yf3vstmRvd", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "rWkJHivsFRdZCnpF8", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-22 19:23:11"}
{"_id": "7msbs2uqhnkQsX6yZ", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n  \n  \n  File \n  \n  \n}\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "35tnsQs6j6N3YuXY3", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:51:19"}
{"_id": "MXmezfJBpDnjA68z6", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink.link not in link\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LdATsmZMRhurHKGAT", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 01:14:31"}
{"_id": "ML2ETZ5f2ZjmW7r2M", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash = Trash\n}", "derivationOf": "EFmvnSgFoL5EbNhmE", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 11:30:16"}
{"_id": "7PXKsrAkMNq7mzJwB", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tFile = Trash + Protected\n  \tno Trash & Protected\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "4yMKSJsSAgeYj2Gup", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:09:42"}
{"_id": "qLguRTGs8Ej2amRup", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  (link.f) implies f & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "b6CkDwfCCW3x87bmx", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 22:53:18"}
{"_id": "xyi4cwY95xsiLpLjA", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "d85Pd3xJFRcRE9emX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-10 15:03:56"}
{"_id": "zQAsYSZGjch739KWF", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tFile = Trash + Protected\n  \tno Protected or Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KpQZ4zJcA3TSmjnAv", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:10:51"}
{"_id": "GbgqfMcJmgPD93pHv", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link and f1!=f2 implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "fDYM42Y2EGnqHWXr7", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:29:54"}
{"_id": "XLfzNXexP6sGMbd5c", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n   no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n   all File in Trash\n   no Trash'\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bjvSMBag5AygFRrPX", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-6 14:33:39"}
{"_id": "N4CzX4MK5dGErTmSt", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \t\n \tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ivbmgDABDsfRkForg", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:35:44"}
{"_id": "emLDkHffLTdsE9MYK", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1:File,f2:File | not f1.link = f2\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "WQkNTv7GrFEzvQMgs", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:50:26"}
{"_id": "qWeGxdGrfZMMX2QMv", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tFile = Trash - Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eML8P7CZeoic4GFn7", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:41:04"}
{"_id": "S7S4uc9LK7GvbJHdZ", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n  \n  \n  (File & not Protected)\n  \n  \n}\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9rBbd9f2ei7Ew3tBN", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:50:57"}
{"_id": "4TX5Qk4FDXYb38NMB", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XWrWBnqALmGWbGDWF", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:31:03"}
{"_id": "TTSNKpdQnrKuoy5Pk", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f.^link in Trash and f in Trash\n}", "derivationOf": "tPxtEKneCCumqTLbn", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 14:39:09"}
{"_id": "PZyfKrmYzk4NhtPEG", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n}", "derivationOf": "tw5R2otsejtcBP6kD", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 19:59:35"}
{"_id": "EfPoetoMnNivNkvri", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n}", "derivationOf": "nhaQX8Hi4CM39QMhv", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-2 13:37:27"}
{"_id": "yNt2jcQWZCW4mLCyp", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File & not Protected) in Trash \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "6BpcPjp7zGFTujASY", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:07:47"}
{"_id": "hwow6naEarXSWetEP", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n  \tnot Protected & Trash\n}\n\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "a5KpffHxd5poiJwbF", "msg": "This expression failed to be typechecked line 53, column 4, filename=/tmp/alloy_heredoc12562361499461723853.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:28:10"}
{"_id": "wRddYKxeu7uytdxu6", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f in Trash\n}", "derivationOf": "oLfhfuTBYqAR78Wj8", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 14:36:24"}
{"_id": "NHxWTYPLePaWKjK3p", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f, t: File | no (f.link).t.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nacCbsMAL2okRHfdd", "msg": "This cannot be a legal relational join where\nleft hand side is f . (this/File <: link) (type = {this/File})\nright hand side is t (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:28:40"}
{"_id": "iE8BabQnA4BTomn8Z", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\nno link.link\n\n\n/* A link does not link to another link. */\npred inv9 {\nno link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zxviikxavEH4mMTJ9", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-9-10 18:08:09"}
{"_id": "KSit8CggoBnwvnSSz", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  (Trash . link) :> Trash\n}", "derivationOf": "7H4zyZqgS8r6ewWJq", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:46:51"}
{"_id": "L6PpAwbBD3gSE2Bvz", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n\t File = no Protected & Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "82XhX4koqfJmyfGhp", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:27:22"}
{"_id": "YcuzgECrSaYrxsGvW", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tno File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9ZguorQjYreKdah7T", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:31:19"}
{"_id": "75A5TvfYNmxt9PGA7", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Trash - Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9sACLtTWJqFaK2bJp", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:40:11"}
{"_id": "xv4Q8b9oowjeumF7p", "cmd_i": 8, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | link.f in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\t\n}", "derivationOf": "5YPMwx82zfC8EWqY4", "msg": "in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:24:08"}
{"_id": "tWNyCvWnA5LvbGv9p", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "BzcWKcCgBg6dwZ5HZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:28:56"}
{"_id": "aSJh4dPhQrJRQp7Td", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  File \\ not Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n  all f:File | lone f.link\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sxRz67XXnkeahGRdb", "msg": "Syntax error at the \\ character. HEX: \\u5c)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:43:31"}
{"_id": "Q6hw7Zj9obEZCKKAz", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden\n}\n\n\npred inv7 {\n\tall f : Trash | no link . f\n}\n\n/* There are no links. */\npred inv8 {\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f . link in Trash\n}", "derivationOf": "tP4Kzp4gL5cxX2NMW", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:45:35"}
{"_id": "oTGJTYXNR6SptLc4g", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n   no Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n  all f:File | lone f.link\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HDWaDSP6pA9rfef7z", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:41:49"}
{"_id": "8oLo6u9WgtdPqZmfM", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "Tx9Yk7G29yEvJfNuS", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File": {"x": 364.16668701171875, "y": 199.16665649414062}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-10-3 10:04:38"}
{"_id": "BjLqvEyfHTMnhZQN2", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.File & File.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t(link.Trash).link in Trash\n}", "derivationOf": "fHNECHKf6pEmNfWgq", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-30 00:55:36"}
{"_id": "EE5Qgb3gTkY6mumbR", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno f:File | f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno f:File | f in Protected and f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected -> f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dxBk7DyJTt4fYc96K", "msg": "!in can be used only between 2 expressions of the same arity.\nLeft type = {this/File}\nRight type = {this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-6-15 19:40:31"}
{"_id": "rYGRHBXjLSnEoRgJt", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  no Protected in Trash\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "8oLo6u9WgtdPqZmfM", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-13 17:53:50"}
{"_id": "Tj6WEj6iaeCnnzFSD", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   link : File.link | f: File | one link -> lone file\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "maTEa3d6p6FPitTmC", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:10:27"}
{"_id": "sBvbf2Fr6FCZJapJM", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YAyNZeCDF4v5Yfg3R", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2021-1-8 02:28:57"}
{"_id": "zCFRaGMiNYhtwpjxD", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\tall f : File | f in Trash => f.link in Trash\n  \t\n  \tFile.File~ in iden\n}", "derivationOf": "xDXCtJ2Gz8cXCKMev", "msg": "There are 25 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all fun iden let lone no none one seq some sum this univ { ~", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-15 00:52:18"}
{"_id": "s3Jyp2B58ovrB3DXJ", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ojebjQ65WTwg6hKmm", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:40:53"}
{"_id": "q4HxsGxBKY4rPRm69", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t : File  | some t.link\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cctTgbiDNapqSFdeK", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 11:45:05"}
{"_id": "bZbQhaq4sB7J9JaPx", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile & Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XtA7tgHSRBCZTpANK", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:24:58"}
{"_id": "ccjNX6dRWdy2FNNRz", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f : File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n not some f : Protected | f in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f : File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ykeCHgzjgZwjegDvk", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:11:58"}
{"_id": "zuG93f8s3cE2oxw6Q", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \tno Trash . link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cpjWyXwpBPvhgEoxj", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:55:39"}
{"_id": "EMt9gf3xEoqturWEN", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "czdT9k999p56JQg6u", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:02:36"}
{"_id": "pa8evhGgScWEh4qR3", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    all f:File | some f1,f2:File-f | f->f1 in link and f->f2 in link implies f1=f2\n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash   \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "R4Pfpt8Wvp5wKNLKF", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:36:04"}
{"_id": "kD2LWz4ePXG7QE74t", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f: File | not f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f: File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | not f in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  all f1,f2,f3: File | f1->f2 in link && f1->f3 in link implies f2=f3\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f1,f2: File | f1->f2 in link implies f2 not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "p5f7vW4T8ReWWfZGT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-31 20:49:20"}
{"_id": "bz4KW2Aq3xxHzZQGM", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   all t : Trash | no t.link  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3tGLe3Rf6Y7GSGQTW", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 16:13:22"}
{"_id": "MAhmh4sNwvRE4iTec", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cHjtq4eXGB88PP2hx", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 01:06:28"}
{"_id": "SB6SLRLpyXnt8jP3r", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3acfSFEocDtLC9GCZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 14:45:08"}
{"_id": "8pv32Mtfoto8XpWaL", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \tno Trash . link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KtHHcGfWjhyALT2xb", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 10:00:45"}
{"_id": "ABR4JdJugSvfT67kn", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \t\n \tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hRTL9G8fkAB6ktwbT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:36:06"}
{"_id": "K8Z7Donf3jw6w7Bjz", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tnot Protected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LYjvoQYQCdFyvX4nw", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:30:13"}
{"_id": "ZkFthx9bh2XLHCex8", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tall f: File | not f in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f: File | f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f: Protected | not f in Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all f: File | f not in Protected implies f in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dFfmfrZ9y2mizKKqB", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-31 20:41:05"}
{"_id": "amu9vNNR2NvYr5z97", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tfile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome file in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ytsgBW8J22C4EPvW8", "msg": "The name \"file\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:24:44"}
{"_id": "pdvKC4PPGTm5RqEDv", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone File.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "yYjtyNDSFRWj8ekXa", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-22 19:24:40"}
{"_id": "PLMCTHedypqDcX8sR", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | f1.link - f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "e9QbHCMnjhKq25dvx", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:22:26"}
{"_id": "2LC3PpcBQ5vob7sgM", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n} \n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f:File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "mLDopexChJpQKQjDK", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-22 19:10:29"}
{"_id": "XmtAAdpaNh2GLLjTC", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no(Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\tFile - Protected in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \t\n\tlone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n link.~link in id\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vT2it5Z2ve9GjZCmF", "msg": "The name \"id\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 00:06:28"}
{"_id": "hkowba7oZLAz7msSZ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "boZECYMRmRb5NMrrx", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 18:40:09"}
{"_id": "T9yJyX9CdHQTJuBcz", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File - Protected) in Trash  \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "J23RryBPXAHSTRJcT", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 10:13:26"}
{"_id": "mpgEEbrwkyb8uZRrC", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "D7ohDdazhreZhP5sK", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 10:01:05"}
{"_id": "8SbWkYfsgqMaJJT7T", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "Bh9QYdTWBMPQkjhF4", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-21 18:27:12"}
{"_id": "aEcEfSS7wbwDLCMiS", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash + File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "W7GAkqaNd2M7veKbG", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:26:00"}
{"_id": "sCaoWFHvhZe85zYYX", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "rgbZK2mK4WHhPxjoZ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 17:12:08"}
{"_id": "bJWfGShaLju5RGCJH", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all f : File |  link.f\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ybaY4uxiqC39hqj2W", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:56:19"}
{"_id": "EM4Tedu3xthWEs98R", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n    /* A file is potentially a link to other files. */\n  link : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (link.Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | (f in Trash) implies f.link in Trash  \n}", "derivationOf": "bTjBczf2AFenHRGmi", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:28:37"}
{"_id": "qTvnKKnZLQarytgvM", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xsjtsEGvPCYbomn8c", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-8 02:32:36"}
{"_id": "jj8DZqgo2mksjCj5Q", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-6-10 07:21:51"}
{"_id": "wcpP5LA6qB9QN6CpW", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    all f:File | some f1:File | some f2:File | (f->f1 in link and f->f2 in link) implies f1=f2\n}\n\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link implies f1 not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "avuoQJpALagJZKmah", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:58:16"}
{"_id": "LzSciNReYhhMor2z5", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  File = Trash + Protected\n  some Trash\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vSBjR7Z2LpYYs8Pq3", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 14:59:38"}
{"_id": "GeeRPwpaf7GbGgP6p", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  some link.File\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "65TNdoLZXweKHNT5i", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-12 17:01:54"}
{"_id": "fQEERvXZhN5XJccsM", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = empty\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wWK7ix52nXFujKWJW", "msg": "The name \"empty\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 11:46:24"}
{"_id": "BQEQEz8YPE2ba9Ha6", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all f in File: f -> Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XjXaHRSw3zuLnPjWF", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-13 18:31:38"}
{"_id": "zgj864gA3i8DGca4M", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t : File  | some t.link.Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZrMso38WgputDntHQ", "msg": "This cannot be a legal relational join where\nleft hand side is t . (this/File <: link) (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 11:30:42"}
{"_id": "Dbt3q9XBKBNMY2xQk", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.^link in Trash \n}", "derivationOf": "rnkyieBfL9etXTa6X", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:39:46"}
{"_id": "aaJkNMCEaCGBAEzCw", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "taAFxZauE399RGTLv", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-22 10:29:53"}
{"_id": "XqMbRAZ8NYmEQMQKK", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | no (f.link & f) in Trash\n}", "derivationOf": "RQNapt3ALJTYNbtdc", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:33:25"}
{"_id": "Q6mRekupDkHxR8wm7", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  Trash.link in Trash\n}", "derivationOf": "zikJ37wFecEDLCy8J", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:34:11"}
{"_id": "dtdKieNJ7TK6r67BW", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "wabdhYzZQ6qe3JpWy", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-21 18:26:17"}
{"_id": "uPiifTnPZaDXsZvAc", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-3-23 21:17:22"}
{"_id": "paL8DuFzcmufb2oNL", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jPdyxefQWsRNeGYyH", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:08:07"}
{"_id": "YRexEzfbeXnJf6PY3", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eq7zgjWr6pbrkj6wT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:09:47"}
{"_id": "bKdhD2gYrrLZNDGqX", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\n  \n  File not in Protected implies F in Trash\n  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pfKGs9dNQaAns7vf6", "msg": "The name \"F\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-14 23:28:57"}
{"_id": "XyDyaxSjEXtJhDh36", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash -> File.Trash\n}", "derivationOf": "9jy8wRLqaDYTYfiRQ", "msg": "This cannot be a legal relational join where\nleft hand side is this/File (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:49:09"}
{"_id": "ZoPRMrjRaidSiviqD", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all disj f1,f2:File | disj[f1,f1.link] and disj[f2,f2.link] | f1.link & f2.link = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zJpp6TJZAJ3SJef8D", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 17:08:02"}
{"_id": "kJARMENBT5nEsKdTf", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "c7QS6nSGXLvyXi2Tt", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-21 18:25:05"}
{"_id": "us9BR3aP2mzubSkva", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tauGo3zQoL3C7Zqza", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-12-2 12:03:58"}
{"_id": "H8hw4swC3W8ef2vWh", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tsome Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 19:37:59"}
{"_id": "k6vQHYfx849Z9eRrc", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  Trash = {}\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GvYy8FRLqZXs78YL5", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/File}\nRight type = {PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 23:22:14"}
{"_id": "s8eN5L5zXf6kMH8wR", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash & File.link,Trash\n}", "derivationOf": "b2ZzuwR4Pbkm8wqPd", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:00:48"}
{"_id": "fbYNu4CYwF7Si5TCE", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  File in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  File.link.link = none  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  File in Trash implies File.link in Trash \n}", "derivationOf": "ttnnC3xq9zrgKWypj", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 17:53:35"}
{"_id": "99JxpJurtpziqks8E", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ogKn88LQBGsoq7v4Y", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:21:37"}
{"_id": "sYygG2zGqGmug4vMb", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (no Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JueE3gMw3Xr7YbkXh", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 19:33:35"}
{"_id": "aBGzBKX84cvQgFyNP", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t : Trash | link.t\n  \n}", "derivationOf": "gzGdJim8aYMe29DR2", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:35:40"}
{"_id": "GMb7XajHf7RimhJPZ", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some f.link implies no link.f\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | link.f in Trash implies f.link in Trash\n}", "derivationOf": "EhvZynbndSkCbTL7d", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-23 15:37:42"}
{"_id": "nYYxFDYQk9tSBhkC2", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Pm4wAymxTYuZgxcSu", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 00:07:39"}
{"_id": "vGjmEZZkFoahWincB", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2DW3APPvvTvZsEjGH", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:28:16"}
{"_id": "mvTLkxWPcJJh3LeRq", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TJSxbBJ6J65WnrBi5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:30:16"}
{"_id": "m9mtRqsGeg97Ae3bi", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bZbQhaq4sB7J9JaPx", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:25:24"}
{"_id": "TSP3AXaAJEeSD8tds", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "A4PxiFFDDmPGSja4G", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:55:05"}
{"_id": "SpQFR7tHpqwapZTPZ", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File & no Protected) in Trash \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "dL4aSDMen5o7ouhr7", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:10:16"}
{"_id": "Qe3Fa3Wq3Qj3MrwQ5", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GrbuomrkEH9QiFY7s", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:27:06"}
{"_id": "nn3DsQMg95dB7XNc2", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  some File in Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tj3xoebSCNtjJSccj", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-2 17:59:15"}
{"_id": "JHdYj6ihPP8q7973Q", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  no link.f  and f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EMERzb3rcNW4o7pTN", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 22:56:52"}
{"_id": "JCvhPTB7XwGgomfGo", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n   \n\t\n  all f,f1,f2 : File | f->f1 + f->f2 in link implies f1=f2\n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n   \n   all f : File | all f1 : f.link | f1 not in Trash\n  \n  \n   no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  \n  \n  all f : File | all f1 : f.link | no f1\n    \n  \n  \n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n   no File.link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "JERmKhxpndKScne4n", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:42:23"}
{"_id": "GyeywpBit3Zd8T43d", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Dan8EaEdNSC5Q9uf8", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:19:17"}
{"_id": "AxnR4Rw2WoRuJFLXi", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  File = one Trash\n  \n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bxmyKXYvR4HhG3FdY", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:04:57"}
{"_id": "JFrs8qtfdYrQjeaHK", "cmd_i": 1, "code": "module trash\nsig Name,Addr{}\nsig Book{\n\taddr:Name->lone Addr\n\t}\npred show {}\nrun show for 3 but 1 Book", "derivationOf": "39KWtZWNn3GYuawdG", "msg": "The name \"Trash\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-5-14 23:21:27"}
{"_id": "fakgf36ycQFCQeuqP", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cC8RLB63DofyMpErE", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:26:04"}
{"_id": "YXnyApudQYfyGekn3", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-18 11:35:30"}
{"_id": "egk3D88o9bkjFFmjm", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n\t-link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3JDzr4qfDjMN6pdQ6", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:47:50"}
{"_id": "bRmYBzqap39aANqyx", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dSY6MsZ9kxgCv3R4q", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:24:17"}
{"_id": "38eZj47JqAPRGSRC7", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-20 15:41:10"}
{"_id": "Ch4pYPSuR3TpvFsvu", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yiLCEjGRfyH56Nk58", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 22:25:41"}
{"_id": "h8Ezb93k5G5nPkCRP", "cmd_i": 4, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  Unprotected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "bvwz4rwAiQg6nMi8N", "msg": "The name \"Unprotected\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:14:36"}
{"_id": "HZSDibnGH224eeYoT", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all file: File | file.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all file: File | file.^link = file.*link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JL2jBfFuyuzxeHaBs", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-18 12:24:10"}
{"_id": "jBiFM9c8ZzPBjEH3N", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XdouWfzwFBPWBs7Aq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:49:18"}
{"_id": "vK3h2rHJJtw27eHb7", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected&Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File-Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9k6RJHbCkYZJFvg8g", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 20:28:21"}
{"_id": "W7JEmjCa9ZgWa3HEq", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pZX63WftGNocHxhQA", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:29:29"}
{"_id": "yZ3DMPdSGxfqCTYgs", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  /not Protected & File in Trash\n  \n  \n  \n  \n  \n}\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "775ZTaPRnihbYHKY9", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:53:54"}
{"_id": "XSLd725y3jzGwt5Qz", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "oaLvyd9HSSx4QFA6d", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:25:30"}
{"_id": "YPATPMkJkMXfeSQmZ", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 { File.link & Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\n}", "derivationOf": "bgKLh8oNBq4FRbaYQ", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 11:29:21"}
{"_id": "DqNdHARjkbCAHo9Sq", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yMdwHgAnKpoqX4C6d", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:25:18"}
{"_id": "vc5m7559sYE2bAMdz", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QyjpacNb9eaef5Mky", "msg": "The name \"trash\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-18 09:41:46"}
{"_id": "kTJbMK84CQaigPtjW", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NqDpr3Zdiyo63Cxqz", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:28:09"}
{"_id": "PvQKZfA3DACENobfd", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone link.f\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FzZywfv55iwQXgpaC", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:23:30"}
{"_id": "k3sNRnWwH38q66mQH", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gQ4G4QFkSoy9rgRrF", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 01:15:54"}
{"_id": "2r95bfJkpCgbFngsW", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-10 15:03:25"}
{"_id": "L546vCqifxkSm22Jt", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "CwpTfgR5juRowZqYS", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 21:45:01"}
{"_id": "n9xjm9LTocMKxvknM", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\talways no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-8 15:06:14"}
{"_id": "gmXygRqKj95rYyMpu", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone link:>f\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "g6KAGhbKWynWXeMuw", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-15 00:04:56"}
{"_id": "E7gRFKR2wSKouRpx9", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (File . File.link)\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "Ngcp2Sm6gJXBQrj2n", "msg": "This cannot be a legal relational join where\nleft hand side is this/File (type = {this/File})\nright hand side is this/File (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 20:13:22"}
{"_id": "TEKwh4ktRfRDBS3k4", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n\tFile & Trash & no Protected\n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ujxXkBtSr9P2HDhtL", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:36:54"}
{"_id": "aobFSbyLmm7iHhhTd", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink.link in iden\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3c4QCo3aG4tjiBDEg", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:16:21"}
{"_id": "ur2vWmggkykgW8igY", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in File-Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "T4C7hKkWzy4o4svN9", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 21:50:27"}
{"_id": "KGmfLfZm42e35m8uu", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tfZk6RbnvsXMqEH5k", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 18:40:33"}
{"_id": "PH3trDS4j24DJoDJW", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 12:36:58"}
{"_id": "KnW62uWM3wM6uZyuZ", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f,f':File |  f.link = f'.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "edkc52yc9ftkFY5Am", "msg": "There are 1 possible tokens that can appear here:\n[", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 16:29:26"}
{"_id": "9JdgxqbZ9zXhh8wZu", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mvTLkxWPcJJh3LeRq", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:32:12"}
{"_id": "qzQY5yQ6gBMY2Fg5f", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \nall f:File |  f.link.link in Trash\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zc3ayGeKvHuqQ69nC", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 23:49:31"}
{"_id": "S5GhpuL5DqdiEp9wi", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "LHR6gMcZ89bs82n5s", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:19:31"}
{"_id": "yTBz2Nu5Ro8p8zAua", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "bWCC9j9dgvwwYua5m", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:26:52"}
{"_id": "EeG3Bkb7jqxrvwXMr", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3BxHHvaKyDEB4uhf4", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-8 15:04:34"}
{"_id": "vT2it5Z2ve9GjZCmF", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no(Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n\tFile - Protected in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \t\n\tlone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "c5PyRRAvT5DogXhjh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 23:56:47"}
{"_id": "h5c4YsN7H7x3pjdGr", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-19 09:57:37"}
{"_id": "iZKQotbzoDgvEz2ku", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link & File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2RXdXLFcqFpZhpn9A", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:50:57"}
{"_id": "NDaRuKLwwmZZdrmPv", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  File = Trash + Protected\n  no Trash & Protected\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6RFWtXsjdqmQsams5", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:14:42"}
{"_id": "PoG7iPsS3SyYRgfyM", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all f1,f2:File | not f1 in f1.link && not f2 in f2.link && not f1.link = f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6QwnmwtDXTeehgMLX", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 17:17:11"}
{"_id": "y5bFsqmnCDAqeSeS4", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "aFrmbzpPsrFoGJxqt", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 21:47:09"}
{"_id": "PzwQNMXjWbHXTbiLd", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tone Protected - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vi7Sr6AKe34wshrFP", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:00:28"}
{"_id": "NZEsvj25vw7yDufQA", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "vT36waXSqAMAPgm3T", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-4 15:00:10"}
{"_id": "S7HEdWAP9ADjvW4sv", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | some f.link implies no link.f\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f.link in Trash implies link.f in Trash\n}", "derivationOf": "GMb7XajHf7RimhJPZ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-23 15:37:56"}
{"_id": "Gb9rAfiJ3Jvqvu5RT", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WrfnMfaorB9i6YdZG", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 22:59:19"}
{"_id": "XNmNFyKGJMXdKgEdK", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  no File\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KEpQv976vTb7vXh72", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 14:50:32"}
{"_id": "qZ5NTyqZMNwQ4HeKs", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \nall f:File |  f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6Cq8XRCp9G757Zviy", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 23:49:20"}
{"_id": "xkfbrnF4fKELZmoFz", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  \n  File one Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "s87hGD9hDdP9c47iR", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:25:44"}
{"_id": "6zKJbAq6uZCXgwxE9", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t no Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "WFqhK2WdyPXvfgdpr", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:36:27"}
{"_id": "ytD6TpirfHeHgzwG2", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n    \n\n  \n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n  \n  \n    \n\n  \n  \n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n    \n\n  \n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "bgQ5MGuqSsrkJwYth", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:27:58"}
{"_id": "g6KAGhbKWynWXeMuw", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone link.f\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XJJXRk6cf7JA9yv5o", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-15 00:04:47"}
{"_id": "PG8gY2bFn6BojSzR4", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YS95xxgBzaHxm36Re", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:35:51"}
{"_id": "mzM4YKAmKg7L4J9X7", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g: File | f->g in link implies no g.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | link.f in Trash implies f in Trash \n}", "derivationOf": "b8Mq6Lab2rWGtvcSi", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:34:06"}
{"_id": "dg72ad6J36iK6YPn3", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \t\n\tall t: Trash | t.link in Trash\n}", "derivationOf": "Kgis9L9A5yXJuruHG", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:44:32"}
{"_id": "Ztfi8hdpjP8boyjyg", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n\npred inv7 {\n\tno link.f & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jZccwMPzLsMxiY8j5", "msg": "The name \"f\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-30 00:30:56"}
{"_id": "JLGZ9BYv7CSsMYGfQ", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tno File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XiWjHhqfJyx7bPDnW", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 19:50:36"}
{"_id": "r9dWajyCKdXjNx3S4", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File-Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JHJwb8dGW6wd9dmdL", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 22:36:48"}
{"_id": "AprCRn9SbvR8dzto6", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \t\n \tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bThTFcxwmr729GQxs", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:36:29"}
{"_id": "cTm8rDQo43rRF22gY", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.~link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ehL6iSjWNygJCRJ8s", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 19:24:51"}
{"_id": "jNvWFkK6SiywomnmR", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash & File in Trash\n}", "derivationOf": "o2Z7rTAfzvPwPjxud", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:49:47"}
{"_id": "h3Jh78993kf5fCMfZ", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  no Trash.link.link\n}", "derivationOf": "ah2TD7akgWkGgZ6KH", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 19:50:03"}
{"_id": "Hajb9S58XT7FbL2tq", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {  \n   all file: File |  lone file.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  File.link.link = none  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  File in Trash implies File.link in Trash \n}", "derivationOf": "sabCPTeyFbtem2u3B", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 18:22:55"}
{"_id": "h3RPdJWB3MiByN89b", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | f.link in Protected\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7mafimpgFhwFPsNGG", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-11-14 01:20:40"}
{"_id": "EnbBdsRxvc9ywP7BP", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File \n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected  in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { some File.link -> Trash implies some File -> Trash\n}", "derivationOf": "9STxyWSRc87HBzgK5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 08:38:18"}
{"_id": "Xn5AitekmHThw67Fr", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {  \n   all file: File |  lone file.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  File.link.link = none  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : f in Trash  implies f.link in Trash   \n}", "derivationOf": "Fwfj2BpjpBj2vxhF8", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 18:27:38"}
{"_id": "Az3nydxmAhRofmapt", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g: File | f->g in link implies no g.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies f.link in Trash\n}", "derivationOf": "jyL56NoSh2w69qnwf", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:43:07"}
{"_id": "6x9AyMpidgTA87p6T", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "az6poYTegGbtRXacM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:30:11"}
{"_id": "cCT5k6Dx3KoJo7vxk", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "A3twkyu5zMh2Tcqko", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 01:06:14"}
{"_id": "cHjtq4eXGB88PP2hx", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nErC8WpKHuxTg8gdg", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 01:06:22"}
{"_id": "cYFHCHJ46SRsKuNWT", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    ~link . link in iden\n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n  no link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  Trash <: link => link :> Trash\n}", "derivationOf": "Wa2YagynsMdmkBXRJ", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:51:11"}
{"_id": "B2DpLgKzaZTiiwmxz", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tlone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EL4Nb73RKLyhq4K9w", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-11-14 00:13:45"}
{"_id": "drmM9wZSioyQHgYZ9", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tFile.link in Trash\t\n}\n\n\n\n", "derivationOf": "H2eKGv5tyvv5bKoCf", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-18 20:50:19"}
{"_id": "rwgS5FsgrQis9qSBs", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t : Trash | no t.link\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6vFgvtJ3bbrYHQaJ4", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:35:32"}
{"_id": "9wgGBrQ9GzNwmyCH7", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9vSDRcTuPiCYhhn34", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:14:41"}
{"_id": "jTvNPe5wSwuq6yGER", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\nall f:File | f.link implies no((f.link).link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "JecFdPJjPi6xoSAZq", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 23:42:40"}
{"_id": "jev5G2PeeWDiYEhLy", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RCvtugWbXHapzfENT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:22:51"}
{"_id": "6BpcPjp7zGFTujASY", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \tFile & no Protected in Trash \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "EtC8aKaLbSnPp9gBf", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:07:37"}
{"_id": "68hJ5wY2d2ExK95yC", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7JKZbYvwQb3z5QgXv", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:26:26"}
{"_id": "HoNHYg9JK45y7t8n2", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.link in Trash\n  \n}", "derivationOf": "B8gMRak7XRbcQAws5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 18:10:05"}
{"_id": "W5v9wzTkQn2Mh8tjj", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tone Protected - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SHcMLZsFhPy6A4yMP", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:00:03"}
{"_id": "oFTeocWjCDot3iQLp", "cmd_i": 8, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  all f : File | f.link implies no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n\t\n}", "derivationOf": "fXATtrYJ2t2L426Li", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:33:19"}
{"_id": "vBfsPjbatJnjN9dQZ", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link -> f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "T8kAjbFtRu5Kh3CPS", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:12:44"}
{"_id": "D6H3HPQdKb3E9Kida", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "oisaoywPPSgKeh7Re", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-29 18:17:09"}
{"_id": "yLMxiLimc5gWguMQ2", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  link in Trash->Trash\n}", "derivationOf": "T2JxEkwRXrQX2BNBr", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:33:54"}
{"_id": "8vRxP7bPaotq9uE7z", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kY5RazGafANwW9EKm", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-14 01:05:15"}
{"_id": "6HSKCu9SJe6NR9PQ6", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "eKBXEPjWG283W9vWw", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:27:41"}
{"_id": "ewAFkB3DXpkFxGxJv", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \t(File\\Protected) & Trash\n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3sPTewbL3QJ6bficc", "msg": "Syntax error at the \\ character. HEX: \\u5c)", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:58:36"}
{"_id": "JPM85vXKTCWuABTig", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-6-10 08:59:13"}
{"_id": "quGb6a4SR3cT8edBj", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "vEwCvapJ6t5vqfvDt", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:33:44"}
{"_id": "ADDToX4283Q2PnHKN", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash \n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FC6N2pFzTBWyfyARv", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:22:45"}
{"_id": "d45JnRKN7puGTgxwe", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | no (f.link & f) in Trash\n}", "derivationOf": "7jEJFsQ7bn4Z6375G", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:32:43"}
{"_id": "bSy2DhM4nSeWapAX4", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EZPhtwJHxGCk79Wf3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 14:25:46"}
{"_id": "bgKLh8oNBq4FRbaYQ", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link.Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { \n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 11:28:56"}
{"_id": "9Ze4PptMZsPrFhQSb", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n\t Trash = File + Protected\n  \t no Protected\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8bpNhEFTSibRHmm5b", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:22:19"}
{"_id": "DX9hPbZGHns77zhEe", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no f1.link & f2.^link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8FbAfSQhrscF9wq2E", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:24:39"}
{"_id": "XjXaHRSw3zuLnPjWF", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all f in File: f.Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "XYFjATz6uEabrWYhC", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-13 18:30:59"}
{"_id": "ttnnC3xq9zrgKWypj", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some File in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  File.link.link = none  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  File in Trash implies File.link in Trash \n}", "derivationOf": "SX6PPziAcd8oCdRFn", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 17:53:21"}
{"_id": "3dvB49Wdghgt3zrih", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-18 17:39:56"}
{"_id": "EhZRFFgFE2ri8oxmR", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  no link.f \n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qLguRTGs8Ej2amRup", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 22:55:58"}
{"_id": "beTTaFrnFShCYsAxt", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno (File in Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Qe3Fa3Wq3Qj3MrwQ5", "msg": "This expression failed to be typechecked line 35, column 2, filename=/tmp/alloy_heredoc14789904210245833934.als", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:27:18"}
{"_id": "rJsGy6ku4KszvzmXa", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all fl: File.link | some f: File | fl in Trash and fl->f in link implies f in Trash\n}", "derivationOf": "DvxKgKYtXJRSnN5ut", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:18:20"}
{"_id": "gHrsaA3o8mv9rQ7bq", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}\n\n\n\n", "derivationOf": "cDra5XWhiSsmzH5eH", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-18 20:52:36"}
{"_id": "S3TYRpSPbfdnQYGWd", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  all t : Trash | no link.t\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  link.~link in iden\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  all t : Trash, f : File | f.link \n  \n}", "derivationOf": "Rgy3jJ6eMNysArPeJ", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:43:34"}
{"_id": "65TNdoLZXweKHNT5i", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  some File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZR5tt4giewQzHPZKZ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-12 17:01:35"}
{"_id": "jMoG6YbhoZQoeffkK", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t : File  | some t.link\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { all t: Protected | t not in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { all f: File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "w8N8uhGg5hMQT5HQY", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 12:11:12"}
{"_id": "7SqAkPK9druAnxrt3", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  Trash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | some link.f\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mmsPiN9WD6e2Lpe7z", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 20:18:48"}
{"_id": "W5rc94JbWM5ESkQjo", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DPNHbHDivsQaN5sCM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:05:14"}
{"_id": "Qxq6SFC6zBi4RpgmT", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  Protected not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ThvtdRJESdJnuktuo", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 20:09:22"}
{"_id": "MPM48PXACnKDi4Lmv", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "A3DnYMmFCbcNP8mxA", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-24 19:21:00"}
{"_id": "MSTjgFHCJn4qy38RE", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \tall l : File.link | l not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f->link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZQTY7ysac48dZrL3f", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-28 09:27:02"}
{"_id": "mbHXq36tqx32Yvtas", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YaWksoDvvSXBb6omo", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-25 13:00:33"}
{"_id": "K75Ke9gNcxJouDukx", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "dtdKieNJ7TK6r67BW", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-21 18:26:38"}
{"_id": "tKGfJDGFCC22NrPkf", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 { some Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { $Protected in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "iij7jqjbRrXECgRPS", "msg": "The name \"$Protected\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-14 16:06:35"}
{"_id": "bTjBczf2AFenHRGmi", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n    /* A file is potentially a link to other files. */\n  link : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (link.Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | (f in Trash) implies f.link in Trash  \n}", "derivationOf": "sq3GFq6WHs5pA2QYm", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:28:34"}
{"_id": "Y4bezW5ZZHr4ZMRd6", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "dSj3EPiCKRWNN8nXR", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:04:07"}
{"_id": "o6tK7u944DkmGeG5F", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n  \n  \n  \n  \n  File & Protected\n  \n  \n}\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7msbs2uqhnkQsX6yZ", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:51:29"}
{"_id": "Xu65fb5GKza6JrZnS", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    all f:File | some f1,f2:File | (f->f1 in link and f->f2 in link) implies f1=f2 or f=f1 or f=f2 \n}\n\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link implies f1 not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "gRvvTmhC2BvcutBDs", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:43:24"}
{"_id": "YaWksoDvvSXBb6omo", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PZ8ebpQs3De7kTN4T", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-25 13:00:13"}
{"_id": "rmXAE6y3xYczjMG6d", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tTrash = \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fJYbhDuXjjEWscvaa", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:26:31"}
{"_id": "nAMN2GehTnJc9Zyuq", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tDPyw494rLcFCXYuw", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-12 16:56:54"}
{"_id": "2b4Cvg3JrGBJPw2qa", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  all f : File | some f=Trash\n  \n\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "ZkqeEHuofeNfQTWw9", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 19:03:18"}
{"_id": "KC4fEk4cMSEc5LZ3J", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no f.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f.link in Trash \n}", "derivationOf": "DSkxWffyEwBxpmHf7", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 15:07:27"}
{"_id": "jMDyJruqeircnrKhu", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n+\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "There are 5 possible tokens that can appear here:\nenum fun let open pred", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:03:04"}
{"_id": "wK4r7YDGnfj2chjtR", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : File | f in Trash implies f^.link in Trash \n}", "derivationOf": "JxMGr2igxyF6McRWt", "msg": "There are 25 possible tokens that can appear here:\n( * @ Int NAME NUMBER STRING String Time ^ all fun iden let lone no none one seq some sum this univ { ~", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:37:41"}
{"_id": "yCKmJntD4DcBBhkNr", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tone Protected & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PzwQNMXjWbHXTbiLd", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:00:36"}
{"_id": "zMKu9XJgSAPfhDdNL", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tlink no Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DwSpfwJWSSbZQXPeQ", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:40:17"}
{"_id": "TyZooAZqLGP8SFF4o", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "AMvaE7hmoqEoeegib", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:23:41"}
{"_id": "SBKkyqnkiBZes8qJu", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File |  (link.f not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rFAF6o5nHBoAFCfQR", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 22:50:00"}
{"_id": "QpjbDzQ9pZ8qkfBwo", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "G5iFps4at7r3G7RbD", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:39:39"}
{"_id": "42gDGp2R9QN5CvWpF", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall x: File | x in Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "hFGkDecqMkiTzfCdj", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:02:32"}
{"_id": "vx5ut6jnGm25rNQcn", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tone File.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "B2DpLgKzaZTiiwmxz", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-11-14 00:14:02"}
{"_id": "dL4aSDMen5o7ouhr7", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n  \n \n  \n  \t(File & Protected) in Trash \n }\n  \n  \n  \n  \n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n} \n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n  \n  \n  Trash.link in Trash\n}", "derivationOf": "7qdnXnQNGe8AaRSnJ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 10:10:05"}
{"_id": "dij7iSDvPzN38PQ6w", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected&Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n} \n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "o3NJzr8ZzfMPbdvK5", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File": {"x": 598.9921875, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-10-22 18:50:45"}
{"_id": "625PetqmwWYi3Zi5M", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f . link\n}\n\n\npred inv7 {\n\tall f : Trash | no link . f\n}\n\n/* There are no links. */\npred inv8 {\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\t\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f . link in Trash\n}", "derivationOf": "u2scSpk67qd7kGxcc", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 01:07:49"}
{"_id": "ASz73jKJMym8a3jDY", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "7WxA7uvQdYSF5JGqS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:27:00"}
{"_id": "hRTL9G8fkAB6ktwbT", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n \t\n \tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "kdeNEJqofF4DuD65J", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:35:59"}
{"_id": "WPrFqybmjisqAdAxi", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "RGxCCjrjccbcYrD7k", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:18:40"}
{"_id": "mMFG93Xqr5GFxMZom", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tFile = Trash + Protected\n  \tno Trash & Protected\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "S2bsDofQ7cayGbAtT", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:12:16"}
{"_id": "6BLCK9HyhCxqWBr6i", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  File.link.link = none  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bXkqADLu7NbWtyRTC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 17:39:54"}
{"_id": "NMhAxm4zzrEYaTeNX", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "JpiaXvQL4Q7ZtGJwa", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-18 20:48:24"}
{"_id": "ttvRdH6mdSYrYbveG", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "z4F57mxYaCNa82iHz", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:05:31"}
{"_id": "H9PfkJ5k9jvBNJhQc", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash     \npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rcoaeMbA6o8Ks3Foz", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:25:48"}
{"_id": "W9yb2BpsQPJtWWyoA", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n  \tno Trash & Protected\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f,g,h:File | f->g in link implies g->h not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pyCGdEwMteSJLdmCY", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:45:51"}
{"_id": "b2ZzuwR4Pbkm8wqPd", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pjuzoiuTnkeitb6gG", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:59:52"}
{"_id": "Tb3B8MzNhvt2trYdY", "cmd_i": 3, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  all x : File | x not in Protected implies x in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File, y, z : File | x->y in link and x->z in link implies y=z\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all x : File, y : File | x->y in link implies y not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n  all x : File, y : File | x->y not in link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all x : File | all y,z : File | x->y in link implies y->z not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all x,y : File | x->y in link and x in Trash implies y in Trash\n}", "derivationOf": "8cEMEaKfg6WxCQWQr", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 20:06:55"}
{"_id": "Mb5TDF5o8jBpCXFrZ", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File = Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  some File = Trash\n\n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "a4iMboJH98M2jfX8R", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {PrimitiveBoolean}\nRight type = {this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-4 19:02:17"}
{"_id": "yhLGPzHCA2jGQktYN", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File & no Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "GSWZuR3cDjAwrFovZ", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:30:38"}
{"_id": "vvSu4bRjymFLtT3EF", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "zkivcLXbJ5irGyXjo", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:26:38"}
{"_id": "H2eKGv5tyvv5bKoCf", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash) \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}\n\n\n\n", "derivationOf": "kkhC3SN7KFws24wY8", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-18 20:48:58"}
{"_id": "iFQANih9BSTdJtGmN", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File-Protected | f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "2e4qrHAXk2ghccZRT", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 22:37:08"}
{"_id": "weiHot5RsrB4HwSqz", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | f.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f->link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "q5ysPenQovhpYPssh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-28 09:24:41"}
{"_id": "vCMfdsSg4fyuEQz5r", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Trash - Protected \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "AxaA7D6d2PwG7f2WL", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:42:40"}
{"_id": "7v7WZ7mhx4FKDxXui", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6Rf8LvtWNyTitgmXF", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 16:54:03"}
{"_id": "Kh7NRyuao76thgT2P", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno File in Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2021-1-8 13:47:41"}
{"_id": "QyjpacNb9eaef5Mky", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no trash;\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-18 09:41:38"}
{"_id": "RwaTj44eRYzLmfE6W", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bNXuA6d2gekg48g7j", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 19:21:09"}
{"_id": "jy4Fdpd88f2TLmpqB", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash & link.link.Trash\n}", "derivationOf": "mpgEEbrwkyb8uZRrC", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:01:11"}
{"_id": "R5RgHFuJDjJf9aD48", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fbca9aDr57NhmNMuq", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:30:55"}
{"_id": "ocf2nJHt5pzg7D9gg", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "r77m3dJkKgZHwJh8P", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:30:02"}
{"_id": "HuAn8cLQTHjuk6os5", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "37dXDfQTs7xiqpwpp", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:54:19"}
{"_id": "Jy6ey43FtGJueJGEL", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | f.lone \n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "KGmfLfZm42e35m8uu", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-29 18:42:20"}
{"_id": "zc3ayGeKvHuqQ69nC", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \nall f:File |  f.link in Trash\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qZ5NTyqZMNwQ4HeKs", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 23:49:25"}
{"_id": "549fXieYFWCjmjhMb", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zFwGs8AoYR3W8w98S", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:09:36"}
{"_id": "J8oChhRmywezFQKCk", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { all t: File | t in Trash and t not in Protected\n}\n\n/* Some file is deleted. */\npred inv3 { all t : File  | some t.link\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "q4HxsGxBKY4rPRm69", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 11:52:12"}
{"_id": "cCHpJ6JdXKt3gvvRY", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected in File-Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tFile.link not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qTvnKKnZLQarytgvM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-8 02:32:45"}
{"_id": "4maG68MdKBjqhG6RN", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Le8ShNJwkz9NntEi7", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 21:25:59"}
{"_id": "uHrficnvf8TcrR6Zp", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f:File | f.link not in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Lz6ANTATarBLoXAEN", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-24 23:38:42"}
{"_id": "zi49B4QhgjptjeJ9H", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink in (Trash -> Trash)\n}", "derivationOf": "KmtbkfRX3ayRv8MaL", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 21:18:08"}
{"_id": "KFZJJkB7Xqewj5Euu", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "W5rc94JbWM5ESkQjo", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 09:07:36"}
{"_id": "qtMLQWkNi62KFb9zm", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tlink & no Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HjYTsSK7NH9W3DWhH", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:41:46"}
{"_id": "53zu7SX9dJ4ZgBAzf", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected and no Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fyLuvjg3ctgPuRKb2", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 22:29:18"}
{"_id": "Zqj6WrPXCw6m6cs9A", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tall Trash - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HuAn8cLQTHjuk6os5", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:54:44"}
{"_id": "mwy9XyAMyLx6m4HvQ", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  file in File : lone file.link \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pBJK7vtat5GivsfHz", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 11:51:13"}
{"_id": "jYDaGQK4Emp5jis5i", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-4-16 18:30:09"}
{"_id": "ZPu4LhT5QNsPxvnpz", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n  \tTrash.link in Trash\n}", "derivationOf": "Bgqx6DmW3rsKguwcr", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:33:46"}
{"_id": "ed3eK4nGe2uHszmWD", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link implies not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "8L5roavMXkcPwWbyR", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 14:26:42"}
{"_id": "LCfBFKKMPLmsuZqw6", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:03:25"}
{"_id": "nErC8WpKHuxTg8gdg", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cCT5k6Dx3KoJo7vxk", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 01:06:18"}
{"_id": "eGkhRbGufoS9HLNcv", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "yxCftTnk35f2FKrgC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-1 17:00:36"}
{"_id": "A7mSHkKDmmk3nk6ED", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n    some (File & Trash)\n\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  \n  (File - Protected) in Trash  \n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n  all f : File | lone f.link\n  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tGQBaFk8yydhBF5xu", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-15 00:00:51"}
{"_id": "vF2hhc79WsfQcL9jG", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "DnaTm5QnPEiznDtZj", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 01:09:38"}
{"_id": "xbMEdrnsxSiAW7qYL", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f1: File |  none f1.^link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "qaWwgQATefFJdmzTY", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{none}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:35:25"}
{"_id": "NqDpr3Zdiyo63Cxqz", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "6HSKCu9SJe6NR9PQ6", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-10 22:27:43"}
{"_id": "2Gb3sQSu7HFPdhdKn", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n  \tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n  \tno Trash & Protected\n}\t\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  \tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t\n  \tall f,g,h:File | f->g in link implies g->h not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \t\n  \tall f:Trash,g:File | f->g in link implies g in Trash \n\t\n}", "derivationOf": "3obepoewZ4aaP5M5t", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-12 17:49:19"}
{"_id": "nBHCcBSg7iGx5Jx9c", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all t : Trash | no link.t\n}\n\n/* There are no links. */\npred inv8 {\n  all f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "utgNfpWw4xpNeoaQ7", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:36:22"}
{"_id": "7mkNFz9F6dNDbLS93", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-22 17:25:49"}
{"_id": "QCkXNiRFwTJ7fFv5z", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3dvB49Wdghgt3zrih", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-1-18 17:43:33"}
{"_id": "3vyv8SdGBJepXKKSq", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-6 14:31:00"}
{"_id": "JrYM2Z2w2kPcfkKTm", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n \tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "99JxpJurtpziqks8E", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:22:22"}
{"_id": "EpxmtACWuiLm7qybf", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { some File.link -> Trash implies some File -> Trash\n}", "derivationOf": "NrZCaDFdvGJAmMQTY", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-14 08:30:19"}
{"_id": "maTEa3d6p6FPitTmC", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all link : File.link | f: File | one link -> lone file\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "tHYg7xz7j58wgJCDw", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:10:15"}
{"_id": "CARwmDEmeq5Kvc324", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f: File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p: Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f: File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f: File.link | f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f: File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all f: File.link | no f.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f: File | f.link in Trash implies link.f in Trash\n}", "derivationOf": "QmGDzRPYxuxsdxgtY", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-4 16:46:07"}
{"_id": "vh4vgSSczidtPK7x2", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    \n  \tall f:File | one f.link\n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link implies f1 not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "J6LmLrQZcpJxKC4Hr", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:39:24"}
{"_id": "8sc4WPXzALbqmDQta", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n   \n\t\n  all f,f1,f2 : File | f->f1 + f->f2 in link implies f1=f2\n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n   \n   all f : File | all f1 : f.link | f1 not in Trash\n  \n  \n   no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  \n  \n  all f : File | all f1 : f.link | no f1\n    \n  \n  \n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n   \n   all f : File | all f1 : f.link | no f1.link\n  \n  \n  \n   no File.link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n  \tall f : File | f in Trash implies f.link in Trash\n\n  \n  \n  \n  \n\tTrash.link in Trash  \n\n}", "derivationOf": "gxJpSbABZ6AKeA4Tn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:59:54"}
{"_id": "ZwmDfc6qsb2X7jmdt", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "nHDcexxBqmCWckw3J", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-26 02:33:16"}
{"_id": "7eRnNi22hTHjYLgQw", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\nno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\nlink.Trash in \n}", "derivationOf": "Larr8D6KGYwbwRrPr", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-9-10 18:09:22"}
{"_id": "9yhKjECn7hH9MPgYq", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  File.link.link = none  \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all file : File | file.link in Trash  \n}", "derivationOf": "wnnHGLzE7hzfpGMSr", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-19 17:44:20"}
{"_id": "zonypWCT4JgX4xy8W", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all link: File.link | lone link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "gjD7uanZAYFhedCPb", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-18 12:00:57"}
{"_id": "zMgyb2TEFahCMS6dQ", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   link : File.link | lone link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Tj6WEj6iaeCnnzFSD", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:10:42"}
{"_id": "M5ddBc6EYZS233e4n", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all disj f1,f2:File | f1.link & f2.link = none \n  all f:File | disj[f,f.link]\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "NxodxdjWERaPL5WFt", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 16:55:18"}
{"_id": "oEjERnRP6xjx7DYix", "cmd_i": 9, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.Trash & File.link.Trash\n}", "derivationOf": "s8eN5L5zXf6kMH8wR", "msg": "This cannot be a legal relational join where\nleft hand side is this/File . (this/File <: link) (type = {this/File})\nright hand side is this/Trash (type = {this/File})", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 10:01:04"}
{"_id": "9STxyWSRc87HBzgK5", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash \n\n}\n\n/* All files are deleted. */\npred inv2 { no File \n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { File - Protected  in Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { some File.link -> Trash implies some File -> Trash\n}", "derivationOf": "RKxkkGRsKQdXxHjtQ", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-14 08:38:03"}
{"_id": "gYduSjKbMYDM7A8be", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n    /* A file is potentially a link to other files. */\n  link : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  no (File-Trash)\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n   (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (link.Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no (link.link)\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | (f in Trash) implies f.link in Trash  \n}", "derivationOf": "sYKZYf7EPcgPazAXC", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-5 11:28:29"}
{"_id": "932zFiGuqKGo4pwgE", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected = Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no (File.link & Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  no File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  all f : File | f in Trash implies f.link in Trash\n}", "derivationOf": "MNghswGBciuD8xKYJ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-9-26 02:33:37"}
{"_id": "2sFbpxpYka8wce3Bv", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tsome Trash -> Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "T3QacnxNN8pGn8hqK", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 18:46:10"}
{"_id": "qTpqjXHFomd8fSZYY", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "27BfssvTP4sJs6WE8", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-4 16:32:07"}
{"_id": "3yySTu3ZL83r5oEdA", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "xyi4cwY95xsiLpLjA", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-11-10 15:06:36"}
{"_id": "k43hFpGJFBpDjKvLW", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n \n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nRH7qmTQpxrX8guXm", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-21 13:11:53"}
{"_id": "xa3fKp4Bj5ZTCRt9Y", "cmd_i": 7, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tno \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n  \tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\t\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "MAk6TE75JHMZYhz8t", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:56:58"}
{"_id": "wRn7P82fpCdKyWTa8", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.File & File.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.File in Trash implies File.link in Trash\n}", "derivationOf": "Pg84xJQtzfucc8qaN", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-30 00:37:20"}
{"_id": "2TuGdqQJzGug6PXcF", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  \n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  no Protected & Trash\n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "9gzfvghTtpPNf3ZDG", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:52:20"}
{"_id": "MAaYKLHa3b6w4ofoZ", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  \n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:Protected | no f & Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n  \t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | no f.link & Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tall f:File | no f.link & File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "cNfiGxgjLRhjoyDvu", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:53:36"}
{"_id": "DwSpfwJWSSbZQXPeQ", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "QpjbDzQ9pZ8qkfBwo", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:39:51"}
{"_id": "S2bsDofQ7cayGbAtT", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tFile = Trash + Protected\n  \tno Trash and Protected\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "zQAsYSZGjch739KWF", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:12:09"}
{"_id": "Po9rupvpB33J8v8gm", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all f1,f2:File | f1 & f1.link = none and f2 & f2.link = none and not f1.link = f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PFE4cGhid7bTjStrt", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 17:29:47"}
{"_id": "ky4RQpR9JrJoXYDSi", "cmd_i": 8, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f:File | f in Trash \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {  \n  all disj f1,f2:File | f1.^link & f2.^link = none | not f1 in f1.link | not f2 in f2.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "jiTY7BcfiKcHTAAse", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-19 17:12:07"}
{"_id": "JvMFYSYutRSvwmZ7P", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f: File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f: File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,g: File | f->g in link implies no g.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HAvW7yYx5EexCfsuw", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:28:48"}
{"_id": "mvMYjamokWvgfoidK", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  \tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n   \n\tFile in Trash \n  \t\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t \n\t\n  \n  \n \n  \n  no Protected & Trash\n}\n\n\n\n/* All unprotected files are deleted.. */\n\npred inv5 {\n\t\n \n }\n  \n  \n  \n  \n}\n/* A file links to at most one file. */\npred inv6 {\n\n  \n\n  \n  ~link . link in iden\n  \n}\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n  \tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "F9SR7wff4WTyfnKWj", "msg": "There are 5 possible tokens that can appear here:\nenum fun let open pred", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:54:46"}
{"_id": "dJGShBxmSmj7SmQrD", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "D9CuCyYeKgjCLb9dh", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 21:05:38"}
{"_id": "HMvi6u3vxBdhADkAp", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected => f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\t no link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t\n}", "derivationOf": "yydRhjojaffjwtvfM", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:39:43"}
{"_id": "Z9miTbxdHuocnfWs3", "cmd_i": 9, "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n  all f : File | some f.link implies no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | some f.link | f in Trash implies f.link in Trash\n}", "derivationOf": "oGLmTC9LCenjnRNqF", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 22:37:39"}
{"_id": "y38yteRsdMrpEmWbC", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 14:49:22"}
{"_id": "Gwvg6Dsg3NzqZf6Sg", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-20 19:34:06"}
{"_id": "gtzaF5vnY6o6BcMvv", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-4-18 14:08:20"}
{"_id": "Da4LNoeyPsHJECCW6", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash <: File\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tProtected = no Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yR8g2iMeQutEbmpJZ", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:33:49"}
{"_id": "ZK5TW5BaszbxmyDMA", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Trash - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "wydLYuLGBYNa3RFNN", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 20:21:00"}
{"_id": "F4hi6NG6bHrFBRXfv", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f1 -> f2 : link | f1 not in Trash\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f.link in Trash \n}", "derivationOf": "NcLGPZBFKjiHbnfjs", "msg": "The \"all x\" construct is no longer supported. If you know the range of possible values of x, consider rewriting it as \"x == set_of_all_possible_values\".", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-12-25 13:04:41"}
{"_id": "wGDhyq9SkvvJMwu8G", "cmd_i": 1, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tfile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "amu9vNNR2NvYr5z97", "msg": "The name \"file\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-10-3 09:24:49"}
{"_id": "r8X58w2GdbB7h5pZP", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  all f : File | f in Protected implies f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  Trash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "7SqAkPK9druAnxrt3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 20:19:41"}
{"_id": "ETj9tq2wYNakE65sJ", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n\npred inv7 {\n\tall f : Trash | no link.f\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "fzzuLwEd59aF6J8iB", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:28:27"}
{"_id": "CZmhZfoxSQfTBowDF", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EBBENmA5yeEtXxWAJ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-13 19:04:56"}
{"_id": "fHNECHKf6pEmNfWgq", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.File & File.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tlink.File in Trash implies File.link in Trash\n}", "derivationOf": "eqTsjbwDioj7Pba8d", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-30 00:42:09"}
{"_id": "MNXDGjfQtJzTmqSzT", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\nno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\nlink.Trash in Trash\n}", "derivationOf": "7eRnNi22hTHjYLgQw", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-9-10 18:09:35"}
{"_id": "KqpAnCDCL3HTEqpxq", "cmd_i": 5, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   Protected & Trash = none\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file : File. | lone file.^link \n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "usJzRXFTsbxgBMuyG", "msg": "There are 28 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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-18 12:05:51"}
{"_id": "zghTupHdHL4djKEeQ", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n\tTrash=none\n}\n\n/* All files are deleted. */\npred inv2 {\n  \t\n  \n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\t\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link.File\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tFile.link in Trash\n}", "derivationOf": "Awm62TKgyB3KEnfdt", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-12 16:29:04"}
{"_id": "8GA5dasnsnfWsY7MF", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall p : Protected | p not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "yK3owchWj9iRLwMZn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:32:46"}
{"_id": "Bvjv9RxyEsEp5GK6W", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n  \n  all f : File | f not in Trash\n \n  \n  no Trash\n  \n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  \n\tall f : File | f in Trash \n  \n  \n  \n   File in Trash\n  \n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n  \n  \n  some f : File | f in Trash \n\n  \n  some Trash \n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n   \n\tall p : Protected | p not in Trash \n    \n  \n  no Protected & Trash\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  \n   \n\tall f: File | f not in Protected implies f in Trash\n  \n  \n  \n  \n  (File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n  \n  \n   \n\t\n  all f,f1,f2 : File | f->f1 + f->f2 in link implies f1=f2\n  \n  \n  \n\tall f : File | lone f.link  \n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n  \n   \n   all f : File | all f1 : f.link | f1 not in Trash\n  \n  \n   no File.link & Trash\n  \n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  \n  \n  all f : File | all f1 : f.link | no f1\n    \n  \n  \n  no File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n   \n   all f : File | all f1 : f.link | no f1.link\n  \n  \n  \n   no File.link.link\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  \n  \n   \n\n  \n  \n  \n\n}", "derivationOf": "566Kqmk9X9re9Bve5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2021-1-12 17:48:05"}
{"_id": "N5webCLaHh4SbfTpB", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n    ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tno File.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno File.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\t(File & Trash).link in Trash\n}", "derivationOf": "r9ExtMR5CxQ2PG5iJ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-31 01:17:52"}
{"_id": "fCC7RAR5TX7eE8M5E", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "pCGpjAtgz2BRGc5cr", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-30 01:04:20"}
{"_id": "42oNbDDigR36L6na7", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\t~link . link in iden \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t \n}\n\n/* There are no links. */\npred inv8 {\n\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EhoX4N59CGvbR5MwA", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2019-10-3 09:56:08"}
{"_id": "Nnm9wvb4nw8WFSy3E", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HX3akHKR3NpL3o9N5", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-12-2 12:03:06"}
{"_id": "3ikrRiPgv8XxabRim", "cmd_c": true, "cmd_i": 4, "cmd_n": "inv5Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-24 23:35:01"}
{"_id": "FbQHpmpw4g9sJ4gao", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all x : File | lone x.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f : File | f.link in (File - Trash)\n}\n\n/* There are no links. */\npred inv8 {\n  no link \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n  all f : File | some f.link implies no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n  \n  all f : File | some f.link and f in Trash implies f.link in Trash\n}", "derivationOf": "Z9miTbxdHuocnfWs3", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 22:38:08"}
{"_id": "2zByM9ubfoNhaq3Wb", "cmd_i": 2, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tFile & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "YcuzgECrSaYrxsGvW", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-5 09:31:24"}
{"_id": "WoBbjtDyRcbx744TK", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:22:44"}
{"_id": "aEvns4X8pEaWuqAXP", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "SFjYaY9n8cms6Yy74", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-22 10:27:44"}
{"_id": "CsSwE8KbXbvot9EGE", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n\t Trash = (File in Trash) \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "974qH6KQ9gWybKFSZ", "msg": "= can be used only between 2 expressions of the same arity, or between 2 integer expressions.\nLeft type = {this/File}\nRight type = {PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 15:30:08"}
{"_id": "7QMevGfk7Xh5MRpwe", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  all f:File |f in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rrLr5btEZPwXWTvek", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 18:47:42"}
{"_id": "okZE2TJMaEq9B2dxy", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "TxRMJGL8jn5Qi8jt7", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:45:47"}
{"_id": "NcLGPZBFKjiHbnfjs", "cmd_c": true, "cmd_i": 9, "cmd_n": "inv10Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tTrash = File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f : File | no f.link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f : Trash | f.link in Trash \n}", "derivationOf": "tWGTihtS4vzBEhzXS", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-12-25 13:03:39"}
{"_id": "WnZn898zxawyWm6SA", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File-Protected\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | some f1,f2:File | f->f1 in link and f->f2 in link implies f1=f2 \n}\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link and f not in Trash implies f1 not in Trash \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "QpDJnZKGkqwNBkD8R", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-27 21:26:24"}
{"_id": "fw5WEbWBP3jF4ESpj", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\t\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "bRmYBzqap39aANqyx", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-2 13:24:46"}
{"_id": "HfhbMi7gsFMTmdQyz", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Ch4pYPSuR3TpvFsvu", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 22:28:11"}
{"_id": "gYdZpAm2ePceLuApS", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | some link.f implies f not in Trash\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "LpgCC9DFxrzJHdjrQ", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-23 15:33:32"}
{"_id": "Y2wXtdQCpqGRmM7Tx", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f:File | some x: (f.link = x)  implies (f.link not in Trash)\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 { \n\tall f:File |  no f.link.link \n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | f in Trash implies f.^link in Trash\n  \t\n}", "derivationOf": "GHFNNdDnwPuWBT2Qj", "msg": "There are 3 possible tokens that can appear here:\n,  { |", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-30 00:10:33"}
{"_id": "vLrNvxDHQkMR3DFwA", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  \n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  \n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n  \n\tsome (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no(Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3otG73wWb23qEjiQY", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-4 23:33:52"}
{"_id": "DYYLsezAbFvRcoEZ2", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n  Trash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  no Trash & Protected\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n  File-Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n  ~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  no File.link & Trash\n}\n\n/* There are no links. */\npred inv8 {\n  no link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  lone ^link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "3aJ2nLRrNQtHBWxRo", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2021-1-10 22:31:59"}
{"_id": "cqqKNXDqBwK72ahM9", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "nH5QbmohDMrXp88Ja", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 16:58:06"}
{"_id": "r7jFSXMPhfrvRMvpm", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { link -> Trash implies File.link -> Trash\n\n}", "derivationOf": "JqRG4uRHC3m8zL2o3", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-13 19:07:57"}
{"_id": "2rfbfZ4C3xqg9mAKC", "cmd_c": true, "cmd_i": 3, "cmd_n": "inv4Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n    Trash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n   File = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n  some f: File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n   not Protected in Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \tFile = Trash + Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n   all file: File |  lone file.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n   File.link & Trash = none\n\n}\n\n/* There are no links. */\npred inv8 {\n  no File.link\n  \n}\n\n/* A link does not link to another link. */\npred inv9 {\n  all l1: File.link |   all l2: File.link | l2 & l1 = none\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PWvKGaRKAsBN5f9jK", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-19 16:16:38"}
{"_id": "3esEmwDxhX85fpd2S", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno (File - Protected) - Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tall f : File | no Trash & f.link\n}\n\n/* There are no links. */\npred inv8 {\n\tall f : File | no f.link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f1, f2 : File | no link.f1 & f1.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "juwxJEhqMHPsu7vxG", "msg": "This variable is unused.", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-3 19:11:15"}
{"_id": "pJ5wFpiED4ZNtp8uS", "cmd_c": true, "cmd_i": 6, "cmd_n": "inv7Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno (Protected & Trash)\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link.link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno link.Trash\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Dd9KyYS7u5WM2qN7z", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 20:40:12"}
{"_id": "3WJeffnH3xkhRFt3L", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Q4KEzXAHt4e32BpkA", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:24:32"}
{"_id": "zFwGs8AoYR3W8w98S", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFile = Protected + Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-3 18:09:34"}
{"_id": "Rf4L7XdjTazK838Bh", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 { no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 { no File\n}\n\n/* Some file is deleted. */\npred inv3 { some File -> Trash\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 { no Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 { no Protected -> Trash\n\n}\n\n/* A file links to at most one file. */\npred inv6 { lone File.link\n\n}\n\n/* There is no deleted link. */\npred inv7 { no link -> Trash\n\n}\n\n/* There are no links. */\npred inv8 { no link\n\n}\n\n/* A link does not link to another link. */\npred inv9 { no link -> link \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 { File.link -> Trash\n}", "derivationOf": "JT4KwJpQwH2mDtio9", "msg": "This must be a formula expression.\nInstead, it has the following possible type(s):\n{this/File->this/File}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-13 22:39:42"}
{"_id": "Lz6ANTATarBLoXAEN", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n  File in Trash\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f : File | f not in Protected implies f in Trash \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f:File | lone f.link\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n  all f:File | no f.link in Trash\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "EJ9gcGmJocLzNvF6Z", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-24 23:38:29"}
{"_id": "tJaMyDkyDXJSxPFEo", "cmd_c": true, "cmd_i": 5, "cmd_n": "inv6Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tTrash = none\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash.link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link.link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "nDzhxJvjtatHfGnAj", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-17 10:47:18"}
{"_id": "JecFdPJjPi6xoSAZq", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n File in Trash\n}\n\n/* Some file is deleted. */\npred inv3 { \n  some Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f:File | lone f.link \n   \n}\n\n/* There is no deleted link. */\npred inv7 {\n\t\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\nall f:File | lone f.^link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "FQq82o5rEo9xDuDWw", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-29 23:41:58"}
{"_id": "ciovhfJok5DTLFioK", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tTrash = no File - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "mTwSQBuS9stQdh6tS", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 19:02:48"}
{"_id": "7NpkJK6gSEtFijw7F", "cmd_i": 3, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "sA3ciWZxhiffjRMyv", "msg": "This must be a set or relation.\nInstead, it has the following possible type(s):\n{PrimitiveBoolean}", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-11-1 16:48:14"}
{"_id": "tYQ2GZKQncq5Mydrp", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f:File| f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f:File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tall f:Protected | f not in Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tall f:File | f not in Protected implies f in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n    all f:File | some f1,f2:File | (f->f1 in link and f->f2 in link) implies f1=f2 or f=f1 or f=f2 \n}\n\n\n\npred inv7 {\n\tall f,f1:File | f->f1 in link implies f1 not in Trash  \n}\n\n/* There are no links. */\npred inv8 {\n\tno link\t\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tall f,f1,f2:File | f->f1 in link implies f1->f2 not in link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tall f:File | all f1:File | f->f1 in link and f in Trash implies f1 in Trash\n}", "derivationOf": "N9ENGiezg7Ji3eRQn", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-10-27 21:43:44"}
{"_id": "tkxJvhPCNg9aMedp8", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\tFiles - Protected in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "HsCCK2GpjPmGcXRmr", "msg": "The name \"Files\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2019-11-1 16:49:13"}
{"_id": "dymupicYrmbJXq5mk", "cmd_i": 6, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tsome Trash\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \t\n  no Protected & Trash\n  \n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n  \n  File = Trash + Protected\n  \n  \t \n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  all f : File | lone f.link\n\t\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   all t : Trash, f : File | no t.link , no f.link\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n  \n  \n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "haYuTPhPmwcWzPJos", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-10-31 16:16:08"}
{"_id": "Lywrh6eFtyEmxaXRX", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t(File - Protected) in Trash\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\t\n\t~link . link in iden\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \tno Trash . link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tno link . link\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\tTrash.link in Trash\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "theme": {"currentFramePosition": {}, "currentlyProjectedSigs": [], "generalSettings": {"currentLayout": "breadthfirst", "metaPrimSigs": [{"parent": null, "type": "univ"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}, {"parent": "univ", "type": "File"}, {"parent": "univ", "type": "Int"}, {"parent": "univ", "type": "String"}, {"parent": "null", "type": "univ"}, {"parent": "Int", "type": "seq/Int"}], "metaSubsetSigs": [{"parent": "File", "type": "this/Protected:File"}, {"parent": "File", "type": "this/Trash:File"}]}, "nodePositions": {"File0": {"x": 222, "y": 199}, "File1": {"x": 444, "y": 199}, "File2": {"x": 666, "y": 199}}, "relationSettings": {"edgeColors": [{"color": "#0074D9", "relation": "link"}], "edgeStyles": [{"edgeStyle": "solid", "relation": "link"}], "showAsArcs": [{"relation": "general", "showAsArcs": true}, {"relation": "link", "showAsArcs": true}, {"relation": "File", "showAsArcs": true}, {"relation": "this/Trash:File", "showAsArcs": true}, {"relation": "this/Protected:File", "showAsArcs": true}], "showAsAttributes": [{"relation": "link", "showAsAttributes": false}]}, "sigSettings": {"nodeBorders": [{"border": "solid", "type": "univ"}, {"border": "dashed", "type": "this/Trash:File"}, {"border": "inherit", "type": "File"}, {"border": "inherit", "type": "Int"}, {"border": "inherit", "type": "seq/Int"}, {"border": "double", "type": "this/Protected:File"}, {"border": "inherit", "type": "general"}], "nodeColors": [{"color": "#2ECC40", "type": "univ"}, {"color": "inherit", "type": "this/Trash:File"}, {"color": "inherit", "type": "File"}, {"color": "inherit", "type": "Int"}, {"color": "inherit", "type": "seq/Int"}, {"color": "inherit", "type": "this/Protected:File"}, {"color": "inherit", "type": "general"}], "nodeShapes": [{"shape": "ellipse", "type": "univ"}, {"shape": "inherit", "type": "this/Trash:File"}, {"shape": "inherit", "type": "File"}, {"shape": "inherit", "type": "Int"}, {"shape": "inherit", "type": "seq/Int"}, {"shape": "inherit", "type": "this/Protected:File"}, {"shape": "inherit", "type": "general"}], "nodeVisibility": [{"type": "univ", "visibility": false}, {"type": "Int", "visibility": true}, {"type": "seq/Int", "visibility": true}, {"type": "general", "visibility": false}, {"type": "this/Trash:File", "visibility": false}, {"type": "File", "visibility": false}, {"type": "this/Protected:File", "visibility": false}]}}, "time": "2019-10-31 13:41:36"}
{"_id": "kiSXwe8mfBQY8rAzm", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tall f : File | f in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Ebj5YYdekYR2y4w84", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2019-10-3 09:20:24"}
{"_id": "53WBK6timGeGERtNo", "cmd_i": 4, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tno File - Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome File & Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Trash & Protected\n}\n\n\npred inv5 {\n\tno no Trash - Protected\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Zqj6WrPXCw6m6cs9A", "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": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-11-3 18:57:19"}
{"_id": "BS8PxH8QMztud6Gh6", "cmd_c": true, "cmd_i": 0, "cmd_n": "inv1Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-12-16 17:01:38"}
{"_id": "pikqTkKSfXKDTfqQX", "cmd_c": true, "cmd_i": 2, "cmd_n": "inv3Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\t\n  no Trash\n\n}\n\n/* All files are deleted. */\npred inv2 {\n\t\n  File = Trash \n\t\t\n}\n\n/* Some file is deleted. */\npred inv3 {\n\t\n\tFile = Trash + Protected\n  \tno Protected\n  \n  \n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "rZE5fHhYFC4CfPKxH", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-10-31 15:08:42"}
{"_id": "YhnMMJkgzzsA8G7qi", "cmd_i": 0, "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}", "derivationOf": "ZPSE9XjnRDjgFeQ9q", "msg": "The name \"inv1\" cannot be found.", "original": "PQAJE67kz8w5NWJuM", "sat": -1, "time": "2020-12-31 19:52:39"}
{"_id": "TEHBqsaSmZNdFwv9A", "cmd_c": true, "cmd_i": 8, "cmd_n": "inv9Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n  no Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tFile = Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\tsome f : File | f in Trash\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\tno Protected & Trash \n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n\tno Trash->link\n}\n\n/* There are no links. */\npred inv8 {\n\tno link\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\tlink.link in iden\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "F2rvofGspvaGFWTEP", "original": "PQAJE67kz8w5NWJuM", "sat": 1, "time": "2020-11-5 09:18:02"}
{"_id": "5tax5fvGBxKCDhLm8", "cmd_c": true, "cmd_i": 1, "cmd_n": "inv2Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\tTrash = File\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\n}\n\n/* A file links to at most one file. */\npred inv6 {\n\n}\n\n/* There is no deleted link. */\npred inv7 {\n\n}\n\n/* There are no links. */\npred inv8 {\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "PQAJE67kz8w5NWJuM", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-1-7 18:58:40"}
{"_id": "vqkz3BZ96RSbF5eFK", "cmd_c": true, "cmd_i": 7, "cmd_n": "inv8Ok", "code": "/**\n * Relational logic revision exercises based on a simple model of a \n * file system trash can.\n * \n * The model has 3 unary predicates (sets), File, Trash and\n * Protected, the latter two a sub-set of File. There is a binary \n * predicate, link, a sub-set of File x File.\n *\n * Solve the following exercises using Alloy's relational logic, which\n * extends first-order logic with:\n *\t- expression comparisons 'e1 in e2' and 'e1 = e2'\n *\t- expression multiplicity tests 'some e', 'lone e', 'no e' and 'one e'\n *\t- binary relational operators '.', '->', '&', '+', '-', ':>' and '<:' \n *\t- unary relational operators '~', '^' and '*'\n *\t- definition of relations by comprehension\n **/\n\n/* The set of files in the file system. */\nsig File {\n  \t/* A file is potentially a link to other files. */\n\tlink : set File\n}\n/* The set of files in the trash. */\nsig Trash in File {}\n/* The set of protected files. */\nsig Protected in File {}\n\n/* The trash is empty. */\npred inv1 {\n\n\tno Trash\n}\n\n/* All files are deleted. */\npred inv2 {\n\n\tFile in Trash\n}\n\n/* Some file is deleted. */\npred inv3 {\n\n  some (File & Trash)\n}\n\n/* Protected files cannot be deleted. */\npred inv4 {\n  \n  no (Protected & Trash)\n\n}\n\n/* All unprotected files are deleted.. */\npred inv5 {\n\t\n  (File - Protected) in Trash\n  \n}\n\n/* A file links to at most one file. */\npred inv6 {\n  \n\tall f : File | lone f.link\n}\n\n/* There is no deleted link. */\npred inv7 {\n  \n   no (File.link & Trash)\n\n}\n\n/* There are no links. */\npred inv8 {\n  \n  no File.link\n\n}\n\n/* A link does not link to another link. */\npred inv9 {\n\n}\n\n/* If a link is deleted, so is the file it links to. */\npred inv10 {\n\n}", "derivationOf": "Tc775yNevPJxDFv74", "original": "PQAJE67kz8w5NWJuM", "sat": 0, "time": "2020-11-12 17:15:05"}