{"_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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"}